1. new Object()
/**
* 1. new Object() 생성자 사용
* @type {Object}
*/
let Human = new Object();
Human.name = 'alba';
Human.sex = 'female';
2. 객체 리터럴({})
let Human2 = {
name: 'john',
sex: 'male'
};
1, 2 방식은 내부적으로 같다.
하지만 자바스크립트에서는 객체 리터럴({}) 방식을 권고한다.
A. 가독성
B. 빠르다(다수의 객체를 동일하게 생성해놓고 시간을 비교해보면 다르다)
C. new Object()는 오버라이딩이 가능하므로 위험
/** Object가 fucntion이 아니라 1이 되어버렸다. */
Object = 1;
let a = new Object();
3. 생성자 함수
사실 생성자 함수는 일반 함수이다.
다만 사용할때 new를 붙여 사용하는데, 이렇게 사용하면 일반 함수와는 다르게
자신을 프로토타입으로 지정하고 그 객체를 리턴한다.
선언에서 일반함수와의 차이가 없기 때문에, 생성자 함수로 사용할 함수는 첫글자를 대문자를 사용함을 권고한다.
/**
* 1. new Object() 생성자 사용
* @type {Object}
*/
let Human = new Object();
Human.name = 'alba';
Human.sex = 'female';
/**
* 2. 객체 리터럴({}) 사용
* @type {{sex: string, name: string}}
*/
let Human2 = {
name: 'john',
sex: 'male'
};
/**
* 3. 생성자 함수 사용
* @param name
* @param sex
* @constructor
*/
let Human3 = function(name, sex) {
this.name = name;
this.sex = sex;
}
let human3 = new Human3('jackson', 'female');
console.log(Human);
console.log(Human2);
console.log(human3);
'Dev- > java script, jQuery, Ajax' 카테고리의 다른 글
자바스크립트 스코프 체인 쉽게 이해할 수 있는 예제 (0) | 2019.05.04 |
---|---|
자바스크립트 생성자 함수 패턴(생성자 강제) (0) | 2019.05.01 |
var, let, const 차이 (0) | 2019.05.01 |
자바스크립트 arguments(매개변수의 갯수에 따른 처리가 필요할 때) (0) | 2019.05.01 |
자바스크립즉시 실행함수 (0) | 2019.05.01 |