JavaScript でオブジェクトをインスタンス化するとき、一般的な方法は new 演算子を使用することです。 この記事では主に JavaScript の new 演算子の詳細な説明を共有し、皆様のお役に立てれば幸いです。
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 という 2 つの属性を持ちます。同時に、ほとんどのブラウザーのコンソールには、__proto__ という少し軽い属性も表示されます。これには、constructor と __proto__ という 2 つの属性があります。
__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 中国語 Web サイトの他の関連記事を参照してください。