let person = new Object(); // 뒤에 new라고 붙이면 객체를 생성한다고 생각하면 된다
let person = {} // 이 방식도 있는데 이는 객체 리터럴 방식이라고 함 (주로 이렇게 씀)
let person = {
key: "value", // 프로퍼티 (객체 프로퍼티)
key1: "value2"
}
console.log(person.key1); // 이렇게 점 표기법으로 객체에 key 값을 가져올 수 있음
console.log(person["key"]) // 이게도 가져올 수 있음 (괄호 표기법 반드시 key를 문자열로 표기)
괄호 표기법을 이용하는 좋은 상황은 동적인 파라미터를 얻을 때 주로 쓰임
let person = {
name: "박정수",
age : 26
};
console.log(getPropertyValue("name"));
function getPropertyValue(key){
return person[key];
}
**// property 추가**
person.location = "한국"; 이런식으로 property를 추가해도 됨
person.person["gender"] = "남성";
**// property 삭제**
delete person["name"]; // 하지만 이는 properry 간에 연결을 끊을 실제로 메모리에서 지워지진X
// 그래서 이런식으로 지우면 메모리에서 날릴 수 있어서 이 방식 추
person.name = null;
console.log(person);
**// 메서드**
const person = {
name: "박정수", // 멤버
age : 25, // 멤버
say : function(){
console.log("안녕");
} // 객체에 담긴 함수를 메서드라 함
}
// 두 방식으로 호출 가능
person["say"]();
person.say();
const person = {
name: "박정수", // 멤버
age : 25, // 멤버
say : function(){
console.log(`안녕나는 ${this.name}`); // or ${this["name"]} 으로 자신 객체의 멤버사용}
}
person["say"]();
console.log(`name : ${"name" in person}`); // 결과 name: tr