Javascript 1.9.3 / ECMAScript 5에서는 Douglas Crockford가 적극 옹호한 방법인 Object.create를 도입했습니다. 그리고 다른 사람들. 이 방법은 객체를 인스턴스화할 때 기존 new 키워드에 대한 대안을 제공합니다.
new를 Object.create로 바꾸려면 다음 코드를 살펴보겠습니다.
var UserA = function(nameParam) { this.id = MY_GLOBAL.nextId(); this.name = nameParam; } UserA.prototype.sayHello = function() { console.log('Hello '+ this.name); } var bob = new UserA('bob'); bob.sayHello();
MY_GLOBAL.nextId가 존재한다고 가정합니다. 다음과 같이 Object.create를 사용하여 UserA를 인스턴스화할 수 있습니다.
var userB = { sayHello: function() { console.log('Hello '+ this.name); } }; var bob = Object.create(userB, { 'id' : { value: MY_GLOBAL.nextId(), enumerable: true }, 'name': { value: 'Bob', enumerable: true } });
새 항목에 비해 Object.create의 한 가지 장점은 차등 상속이 가능하다는 것입니다. 객체는 프로토타입 체인 없이도 다른 객체의 속성을 직접 상속받을 수 있습니다. 이는 상속된 속성을 정의할 수 있는 Object.create의 두 번째 인수로 객체를 전달하여 수행됩니다.
또 다른 장점은 유연성입니다. Object.create를 사용하면 속성 설명자 구문을 사용하여 속성 속성(열거 가능, 쓰기 가능, 구성 가능)을 설정할 수 있으므로 개체 속성의 동작을 더 효과적으로 제어할 수 있습니다.
위 내용은 Object.create: `new`보다 객체를 인스턴스화하는 더 나은 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!