STUDY/javascript

6.1 객체 생성하기

수밤바 2014. 6. 2. 14:37
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을 전달한다.