// 객체 생성자 방식
let member = new Object();
// 객체 리터럴 방식
let member2 = {};
// key:value 의 형태
let member3 3 {
key1 : "value1",
key2 : "value2"
//...
}
// 별에별 타입이 다 들어감.
let member4 = {
name: "배재현",
age: 23,
live: true,
child: undefined,
car: ["benz", "bmw"],
getName: function () {}
};
let member = {
name: "배재현",
age: 32,
live: true,
child: undefined,
car: ["benz", "bmw"],
getName: function () {}
};
//점 표기법
console.log(member.name);
//괄호 표기법
console.log(member["name");
//활용.
function getPropertyValue(key) {
return member[key];
}
console.log(getPropertyValue("age")); //32
let member = {
name: "배재현",
age: 32,
live: true,
child: undefined,
car: ["benz", "bmw"],
getName: function () {}
};
member.address = "일산";
console.log(member); // address 가 추가된 것을 볼 수 있다.
member["gender"] = "MAN"; // 괄호표기법으로도 추가 가능하다.
console.log(member);
member.address = "안산";
console.log(member); // address가 안산으로 변경되었다.
delete member.age // age 가 삭제된다.
delete member["live"] // live가 삭제된다.
// 단, delete는 메모리에 남아있다.
// 때문에 null로 할당해주는 것이 좋다.
member.car = null; // 이렇게.
객체를 let이 아닌 const로 할당했다면?
⇒ 예상으로는 값을 수정할 수 없을 것으로 보인다. 하지만 수정이 가능하다.
const member = {
name: "배재현",
age: 32,
live: true,
child: undefined,
car: ["benz", "bmw"],
getName: function () {}
};
member.name = "ShipJH";
console.log(member.name);
//member 객체가 const로 선언되어있어도. 내부의 값은 변경이 가능하다.
//단, member 객체 자체를 변경할 순 없다!
member = {
nickName: "bjh"
//...
} // error.
// 그렇다면,, let 이라면 변경이 가능할까?
그렇다면,, let 이라면 변경이 가능할까?
⇒ 가능하다.
let member = {
name: "배재현",
age: 32,
live: true,
child: undefined,
car: ["benz", "bmw"],
getName: function () {}
};
member.name = "ShipJH";
console.log(member);
member = {
nickName: "bjh123"
};
console.log(member);
//member 객체는 nickName이란 key와 bjh123이란 값만 선언된 객체로 변한다.