JavaScript에서 개체를 인스턴스화할 때 일반적인 방법은 new 연산자를 사용하는 것입니다. 이 글은 여러분에게 도움이 되기를 바라며 주로 JavaScript의 새로운 연산자에 대한 자세한 설명을 공유합니다.
var Foo = function(x, y) { this.x = x this.y = y }var foo = new Foo(1, 2) // Foo {x: 1, y: 2}
그럼 새 오퍼레이터는 정확히 무슨 일을 하는 걸까요? foo 객체가 어떤 객체인지 살펴보겠습니다.
우선 foo 자체는 객체이고 x와 y라는 두 가지 속성을 갖습니다. 동시에 대부분의 브라우저 콘솔에서는 __proto__라는 약간 더 가벼운 속성도 볼 수 있습니다. 여기에는 생성자와 __proto__라는 두 가지 속성이 있습니다.
__proto__는 접근자 속성입니다. 이는 현재 객체 자체의 [[Prototype]]을 가리킵니다. 이 [[Prototype]]은 단지 생성자 Foo의 프로토타입 객체 Foo.prototype을 나타내는 기호일 뿐입니다. MDN 설명은 에 있습니다.
foo.__proto__ === Foo.prototype // true
var Foo = function(x, y) { this.x = x this.y = y }// 1. 创建一个空对象var foo = {}// 2. 调用构造函数,并且将构造函数的`this`指向fooFoo.call(foo, 1, 2)// 3. foo继承Foo的原型对象foo.__proto__ = Foo.prototype
var Foo = function(x, y) { this.x = x this.y = y return { a: this.x } }var foo = new Foo(1, 2) // {a: 1}
위 내용은 JavaScript의 new 연산자에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!