자바스크립트에서 원시데이터를 제외한 모든것은 객체이다. 객체는 프로퍼티와 메소드로 구성되며, 원시데이터와는 다르게 변경이가능한 복합적인 자료구조이다.
let person = {
name : "kim",
age : 30,
sayHello: function(){
console.log('안녕');
}
}
객체는 프로퍼티의 집합이며 프로퍼티는 키와 값으로 구성된다. 프로퍼티는 쉼표로 구분하며 마지막에는 사용해도 상관없으나 관례적으로 사용을 하지않는다.
프로퍼티를 중복선언하면 나중에 선언한프로퍼티가 먼저 선언한 프로퍼티를 덮어쓴다.
자바스크립트의 함수는 일급객체로서 평가되어 값으로 취급할 수 있기때문에 프로퍼티 값으로 사용할 수 있다. 객체 내부 함수는 메서드라고 부른다.
프로퍼티에 접근하는 방법으로는 객체.프로퍼티 , 객체['프로퍼티'] 두 가지 방법이 있으나 관례적으로 전자를 사용한다.
let person = {
name : "kim",
}
console.log(person.name);
console.log(person['name']);
let person = {
name : "kim",
}
person.name = 'lee';
let person = {
name : "kim",
}
person.age = 28;
위와같이 객체에 존재하지 않는 프로퍼티를 동적으로 생성할 수 있다.
let person = {
name : "kim",
}
delete person.name;
delete 연산자로 삭제가 가능하다.
let person = {}
let prefix = 'props';
let i = 0;
//ES5
person[prefix + '-' + ++i] = i;
person[prefix + '-' + ++i] = i;
person[prefix + '-' + ++i] = i;
//ES6
//객체 리터럴 내부에서도 사용가능
const obj = {
['${prefix}-${++i}']:i,
['${prefix}-${++i}']:i,
['${prefix}-${++i}']:i
}
//이렇게하면 더 쉬운데..
for(let i=1; i<=3; i++){
person['props-' + i] = i;
}
//ES5
var person = {
method : function(){}
}
//ES6
let person ={
method(){}
}
ㅅㄷㄴㅅ