JavaScript原型式繼承實現(xiàn)方法
這篇文章主要介紹了JavaScript原型式繼承實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
在2006年,有個叫道格拉斯·克羅克福德的人寫了一篇文章,題目翻譯為中文就是JavaScript中的原型式繼承。在此文章里,他介紹了一種實現(xiàn)繼承的方法。他的想法是借助原型可以基于已有的對象創(chuàng)建新對象,同時還不必因此創(chuàng)建自定義類型。于是,他就寫下了如下的函數(shù):
function object(o){
function F(){};
F.prototype = o;
return new F();
}
實現(xiàn)方法如下:
//在object()函數(shù)的內(nèi)部,先創(chuàng)建了一個臨時性的構(gòu)造函數(shù),然后將傳入的對象作為這個構(gòu)造函數(shù)的原型,最后返回了這個臨時類型的一個新實例
var person = {
name:"Nick",
friends:["xiaowang","xiaochen"]
};
var person1 = object(person);
person1.name = "Mike";
person1.friends.push("xiaozhang");
var person2 = object(person);
person2.name = "lifei";
person2.friends.push("xiaoli");
console.log("person1:" + person1.name);
console.log("person2:" + person2.name)
console.log("person1 friends:" + person1.friends);
console.log("person2 friends:" + person2.friends);
console.log("all friends:" + person.friends);
運行結(jié)果如下:

哇,怎么和原型鏈繼承模式一樣,不管你建了多少個實例,這個父類的引用值始終都會被這些個子類所創(chuàng)建的實例共享,所以這種繼承方式名為原型式繼承,和原型鏈就差一個字=。=
對咯,在ES5中,新增了Object.create()方法規(guī)范化了原型式繼承,它有兩個參數(shù),第一個參數(shù)是用作新對象原型的對象,第二個參數(shù)是可選的,是一個為新對象定義額外屬性的對象。在傳入一個參數(shù)的時候,這個方法是和object()方法一樣一樣的!
相關(guān)文章
JavaScript中的this指向綁定規(guī)則及常見面試總結(jié)
這篇文章主要為大家介紹了JavaScript中的this指向綁定規(guī)則及箭頭韓碩中的this指向,還b包含了常見面試總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
用javascript獲取任意顏色的更亮或更暗顏色值示例代碼
最近在工作中遇到的一個需求,發(fā)現(xiàn)網(wǎng)上沒有相對應(yīng)的解決方法,索性自己寫一個,所以這篇文章主要給大家介紹了關(guān)于利用javascript獲取任意顏色更亮或更暗顏色值的相關(guān)資料,文中給出了詳細的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07
JS實現(xiàn)獲取數(shù)組中最大值或最小值功能示例
這篇文章主要介紹了JS實現(xiàn)獲取數(shù)組中最大值或最小值功能,結(jié)合實例形式總結(jié)分析了javascript獲取數(shù)組最大值與最小值的三種常見操作技巧,需要的朋友可以參考下2019-03-03

