let obj = {
name: "kim",
age: 13,
food: {},
study: function () {
console.log("공부 중");
}
};
obj.name
obj["name"]
obj.study() // 함수 호출
obj["study"]() //이것도 가능
[]
을 사용하는 경우:let key = "full name";
obj[key] = "Kim Minsoo";
delete obj.age;
obj.eat = function () { console.log("먹는 중"); };
for (let key in obj) {
console.log(key, obj[key]);
}
function Person(name, age) {
this.name = name;
this.age = age;
}
const p1 = new Person("Kim", 25);
new
키워드 역할:this
가 새로 만든 객체를 가리킴this
반환prototype
에 정의하면 모든 인스턴스가 공유Person.prototype.sayHello = function () {
console.log(`Hi, I'm ${this.name}`);
};
p1.sayHello(); // Hi, I'm Kim
구분 | 설명 |
---|---|
정적 멤버 (static) | 클래스 자체에 귀속. 인스턴스에서 호출 불가. |
프로토타입 | 인스턴스가 공유하는 메서드 정의. 메모리 효율적. |
JavaScript에서 static 키워드는 클래스 문법에서 사용 가능:
class Animal {
static info() {
console.log("This is a static method.");
}
}
Animal.info(); // ✅ 가능
new Animal().info(); // ❌ 오류
class
를 사용하면 더 명확