객체 생성의 경우 리터럴 및 새 연산자를 사용하는 것 외에도 ECMAScript 5 표준에서 Object.Create ()도 사용할 수 있습니다. Object.Create () 함수는 두 개의 객체를 매개 변수로 받아들입니다. 첫 번째 객체는 생성 된 객체의 프로토 타입을 나타내려면 필요합니다. 두 번째 객체는 생성 된 객체의 다양한 속성 (예 : 쓰기 가능, 열거 가능)을 정의하는 선택 사항입니다.
코드 사본은 다음과 같습니다.
var o = object.create ({x : 1, y : 7});
console.log (o); // 객체 {x = 1, y = 7}
console.log (o .__ proto __); // object {x = 1, y = 7}
Calling object.create ()는 첫 번째 매개 변수로서 프로토 타입없이 객체를 생성합니다. 기본 객체 속성이 없습니다 (예 : TOSTRING () 메소드가 없으므로이 개체의 + 연산자를 사용하여 예외가 발생합니다).
코드 사본은 다음과 같습니다.
var o2 = object.create (null);
Console.log ( "it is" + o2); // 오류 유형, O2를 기본 유형으로 변환 할 수 없습니다.
ECMAScript 3 표준 만 지원하는 브라우저의 경우 Douglas Crockford의 방법을 사용하여 Object.Create () 작업을 수행 할 수 있습니다.
코드 사본은 다음과 같습니다.
if (object.create! == 'function') {
object.create = function (o) {
함수 f () {}
F. 프로토 타입 = O;
새로운 f ()를 반환합니다.
};
}
newObject = Object.Create (OldObject);