JavaScriptのnewオペレータ
1335 ワード
以前よく使われていたnew演算子が、newというオブジェクトが出てきました.不思議なことに、このnewの底に何があったのかを見に来ました.
一、解析new演算
newオブジェクト
実はnewメソッドの楽屋はこうです.
私の個人的な理解は、new演算子が構造オブジェクトを実例化し、実際には構造関数の実例的な属性の方法とプロトタイプの方法を継承し、オブジェクトを初期化しました.対象はJavaScriptで定義されていますが、拡張して、より多くの機能を実現します.
一、解析new演算
newオブジェクト
function Test(name,age){
this.name = name;
this.age = age
this.method = function (){
return this.name +':'+ this.age;
}
}
var t1 = new Test('kuohao',21);
t1.method(); // 'kuohao':21
newという演算子を使って、t 1が対象となり、Testコンストラクションのmethod方法もあります.このnew方法は一体何をしましたか?実はnewメソッドの楽屋はこうです.
//var t1 = new Test('kuhao',21)
//new Test
function Test(name,age){
// ,this
var t1 = {};
// this Test 。
t1.constructor.prototype = Test.prototype;
// this
t1.name = name;
t1.age = age
t1.method = function (){
return this.name +':'+this.age;
};
// t1
return t1;
}
または、new Test構造をcall方法で理解することができる.//
var obj = {};
// Test
obj.__proto__ = Test.prototype
// call Test ,
Test.call(obj,'kuohao',21);
締め括りをつける私の個人的な理解は、new演算子が構造オブジェクトを実例化し、実際には構造関数の実例的な属性の方法とプロトタイプの方法を継承し、オブジェクトを初期化しました.対象はJavaScriptで定義されていますが、拡張して、より多くの機能を実現します.