다음으론 객체에 대해 알아보겠습니다
객체란 무엇인가?
객체란 이름과 값으로 구성된 property의 정렬되지 않은 집합입니다.
프로퍼티의 값으로 합수가 올 수도 있는데 이러한 프로퍼티를 메소드 라고 합니다
자바스크립트에서는 숫자, 문자열, 불리언, undefinded타입을 제외한 모든것이 객체 입니다.
하지만 숫자, 문자열, 불리언과 같은 원시타입은 값이 정해진 객체로 취급되어 객체로서의 특징도 함께 갖게 됩니다
객체의 생김세는
객체이름.프로퍼티
객체이름["프로퍼티"]의 형식으로 되어 있습니다
객체의 생성방식
1. 객체 리터럴 방식(Object Literal)
var obj = { key: value, ... } : 변수처럼 객체를 생성하는 방식으로, 중괄호 { } 안에 key:value를 쉼표(,)로 구분하여 만든다
키값은 문자열(string)로 작성해야 한다.
따옴표로 감싸는게 원칙이지만, '식별자 네이밍 규칙'을 준수한다면 생략할 수 있다.
생성자 방식(Constructor)
: new Constructor() 방식으로 객체를 생성하는 방식이다.
1) new Object()
: new 연산자를 통해 Object객체의 생성자함수를 호출한다.
var myObj = new Object();
myObj.name = '카레유';
myObj['age'] = 20;
myObj.hello = function(){
return `이름은 ${this.name}이고, 나이는 ${this.age}입니다.`;
};
console.log(myObj); // { name: '카레유', age: 20, hello: [Function] }
2) new 생성자() : Number, String, Array 등의 내장 객체도 생성할 수 있다.
// String객체 생성하기
var strObj = new String('hello');
console.log(strObj); //[String: 'hello']```
// Array(배열)객체 생성하기
var arrObj = new Array([1, 2, 3]);
console.log(arrObj); //[ [ 1, 2, 3 ] ]
프로퍼티/메소드 접근방법
객체.key, 객체['key'] 방식으로 접근한다. 메서드(함수)는 마지막에 괄호()를 붙여 호출해야 한다.
var myObj = {
name: '카레유',
age: 20,
hello: function(){
return `이름은 ${this.name}이고, 나이는 ${this.age}입니다.`;
}
};
myObj.name; // '카레유'
myObj.age; // 20
myObj.hello(); // '이름은 카레유이고, 나이는 20입니다.'
/ key는 객체의 프로퍼티만 허용되기 때문에, 다른 변수를 통해 key값을 참조할 수 없다.(객체['key']방식은 가능!)
2) 객체['key'] : 대괄호[ ] 사이에 키값을 '문자열'로 넣어 접근한다.
myObj['name']; // '카레유'
myObj['age']; // 20
myObj['hello'](); // '이름은 카레유이고, 나이는 20입니다.'
// 객체[key] 방식은 key가 따옴표로 감싸져 있지 않으면 변수로 해석해서 참조한다.(객체.key방식은 불가!)
var key_age = 'age'
myObj[key_age]; // 20
출처: https://curryyou.tistory.com/189 [카레유]