객체의 정의, 프로퍼티와 메서드의 정의, 프로퍼티에 접근하는 두 가지 방법, 객체의 값 변경(삭제, 추가, 갱신)에 대해 적어본다
let person = {
name: 'Lee',
age: 20
}
let obj = {};
let key = 'hello'
obj[key] = 'world' // == {[key]: 'world'}
console.log(obj); // {hello: "world"}
let foo = {
0: 1,
1: 2,
2: 3
}
console.log(foo); // {0:1, 1:2, 2:3}
let foo = {
name: 'Lee',
name: 'Kim'
}
console.log(foo); // {name: "Kim"}
let circle = {
radius: 5,
getDiameter: function() { // <-- 메서드이다
return 2 * this.radius; // <---- this는 circle을 가리킨다
}
}
console.log(circle.getDiameter()); // 10
let person = {
name: 'Lee'
};
console.log(person.name); // Lee
-예시1-
let person = {
name: 'Lee'
};
console.log(person['name']); // Lee
console.log(person[name]); // 참조에러
-예시2-
let mySelf = {
cats : ['냥순','냥돌'],
myKey : 'Hello World'
}
let myKey = "cats"
console.log(mySelf) // {cats: ['냥순','냥돌'], myKey: 'Hello World'}
console.log(mySelf["cats"]) // ['냥순','냥돌']
console.log(mySelf[myKey]) // ['냥순','냥돌']
>> == console.log(mySelf["cats"])
>> !== console.log(mySelf.myKey) // "Hello World"
-예시3-
let people = {
'last-name': 'Lee',
1: 10
}
console.log(people.last-name) //NaN
console.log(people.'last-name') // 문법에러
console.log(people[last-name]) // 참조에러
console.log(people['last-name']) // "Lee"
console.log(people.1) // 문법에러
console.log(people.'1') // 문법에러
console.log(people[1]) // 10
console.log(people['1']) // 10
프로퍼티들을 닷 표기법으로 연결하거나 대괄표 표기법으로 연결하거나 섞어서 연결해도 된다
(대괄호 표기법을 꼭 사용해야 하는 경우 규칙을 지켜준다)
function accessObject() {
let myStorage = {
"car": {
"inside": {
"glove box": "maps",
"passenger seat": "crumbs"
},
"outside": {
"trunk": "jack"
}
}
};
let gloveBoxContents = myStorage.car.inside['glove box']
return gloveBoxContents;
}
console.log(accessObject()) // "maps"
배열의 요소에 접근할 때에는 대괄호와 인덱스 번호를 사용한다
function accessArray() {
let myPlants = [
{
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];
let foundValue = myPlants[1].list[1]
return foundValue;
}
console.log(accessArray()) // "pine"
let person = {
name: 'Lee'
}
person.name = 'Kim'
console.log(person) // {name: 'Kim'}
let people = {
name: 'Lee'
}
people.age = 20
console.log(people) // {name: 'Lee', age: 20}
let person = {
name: 'Lee'
}
person.age = 20;
console.log(person) // {age: 20, name: 'Lee'}
delete person.age;
console.log(person) // {name: 'Lee'}
delete person.address;
console.log(person) // {name: 'Lee'}