首先寫乙個父類方法(包含引數name,age):
function person(name,age)
}
new乙個person的例項p1做研究對比:
var p1 = new person("richard", 22);
//此時p1包含name、age屬性,同時p1的__proto__指向person的prototype
p1.name;//richard
p1.age;//22
p1.action;//吃飯飯
自定義乙個new函式:
//通過分析原生的new方法可以看出,在new乙個函式的時候,
// 會返回乙個func同時在這個func裡面會返回乙個物件object,
// 這個物件包含父類func的屬性以及隱藏的__proto__
function new(f) ;
return o; //返回乙個object
}}
通過自定義new方法建立乙個例項物件p2:
var p2 = new(person)("jack",25);
p2.name;//jack
p2.age;//25
此時p2 instanceof person 返回的是true;
person.prototype.gender ="male";
p1.gender//male
p2.gender//male
用原生js實現乙個new?
js 還沒執行的時候,js 環境裡已經有乙個 window 物件了,window 物件有乙個 object 屬性,window.object 是乙個函式物件,window.object 這個函式物件有乙個重要屬性是 prototype,window.object.prototype 裡面有 tost...
用原生js實現乙個bind方法
bind 方法建立乙個新的函式,當被呼叫時,將其this關鍵字設定為提供的值,在呼叫新函式時,在任何提供之前提供乙個給定的引數序列。這段是來自mdn bind的介紹,我們可以理解bind方法返回乙個新的函式,這個函式內部的this指向提供的引數值,來看個例子 const person const g...
自己實現乙個new方法
好久沒有寫點東西了,最近看了下js基礎教程,覺得有些東西還是有必要記錄下來 new關鍵字通常和建構函式一起使用,用於建立物件。function animal name,action let animal1 newanimal tigger run let animal2 newanimal cat ...