728x90
객체생성
1. 객체리터럴
2. new 키워드
3. Object.create()
6.1.1 객체 리터럴
형태 : {이름:값, 이름:값, 이름:값}
프로퍼티 이름 : 식별자 or 문자열
프로퍼티 값 : 표현식
var book={
"main title": "JavaScript" ,
"sub-title" : “The Definitive Guide" ,
"for" : "all audiences",
author: {
firstname: "David" ,
surname: “F1anagan"
}
}
- 프로퍼티 이름은 공백과 하이픈(-)을 포함할 수 있다
- 예약어인 for도 인용부호들 둘러싸서 문자열 리터 럴로 사용할 수 있다
- 프로퍼티 author의 값은 객체 그 자체다
- 프로퍼티의 이름은 인용부호로 감싸지 않을 수도 있다
6.1.2 new를 사용해 객체 생성하기
new 연산자로 객체를 만들고,초기화할 수 있다. new 키워드는 반드시 함수 호출 다음에 와야 한다.
6.1.3 프로토타입
new Object() 로 생성된 객체는 Object.prototype을 상속받으며, {}로 생성된 객체와 동일.
new Array()로 생성된 객체는 Array.prototype을 객체의 프로토타입으로 사용.
new Date() " Date.prototype
Object.prototype은 매우 드문 객체중 하나로 prototype이 없다. 아무런 프로퍼티도 상속받지 않는다.
프로토타입 체인 : 프로토타입 객체들의 연속된 연결
6.1.4 Object.create()
var o1=Object.create({x:1, y:2}); // o1은 x,y 프로퍼티를 상속 받는다.
var o2=Object.create({null}); // o2에는 프로퍼티와 메서드가 없다.
만약 {} 또는 new Object()로 생성된 객체와 같이 일반적인 빈 객체를 만들고 싶다면, Object.prototype을 전달한다.
'STUDY > javascript' 카테고리의 다른 글
textarea 높이 측정 (0) | 2019.07.05 |
---|---|
textarea placeholder 줄바꿈 (0) | 2019.07.05 |
모바일 레이어 백버튼으로 닫기 (0) | 2018.09.19 |
오류시 다른코드에 영향없게 (0) | 2017.06.28 |
콜바이밸류 콜바이레퍼런스 Call by Value, Call by Reference (0) | 2014.07.30 |