這篇文章主要介紹“Javascript怎么實現(xiàn)繼承”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“Javascript怎么實現(xiàn)繼承”文章能幫助大家解決問題。
創(chuàng)新互聯(lián)公司是專業(yè)的長海網(wǎng)站建設(shè)公司,長海接單;提供網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行長海網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
1、構(gòu)造函數(shù)模式
[url=]file:///C:/Users/i037145/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/url]
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
alert(this.name);
};
}
varperson1 = new Person("Nicholas",29,"Software Engineer");
varperson2 = new Person("Greg",27,"Doctor");
person1.sayName();//"Nicholas"
person2.sayName();//"Greg"
alert(person1.constructor == Person);//true
alert(person2.constructor == Person);//true
alert(person1 instanceof Object);//true
alert(person1 instanceof Person);//true
alert(person2 instanceof Object);//true
alert(person2 instanceof Person);//true
[url=]file:///C:/Users/i037145/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/url]
問題:
每個方法都要在每個實例上重新創(chuàng)建一遍。在前面的例子中,person1和person2都有一個名為sayName()的方法,但那兩個方法不是同一個Function的實例。
alert(person1.sayName ==person2.sayName);//false
然而,創(chuàng)建兩個完成同樣任務(wù)的Function實例的確沒有必要;況且有this對象在,根本不用在執(zhí)行代碼前就把函數(shù)綁定到特定對象上面。因此,可以通過把函數(shù)定義轉(zhuǎn)移到構(gòu)造函數(shù)外部來解決這個問題:
[url=]file:///C:/Users/i037145/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/url]
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = sayName;
}
functionsayName(){
alert(this.name);
}
varperson1 = new Person("Nicholas",29,"Software Engineer");
varperson2 = new Person("Greg",27,"Doctor");
alert(person1.sayName == person2.sayName);//true
[url=]file:///C:/Users/i037145/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/url]
問題:在全局作用域中定義的函數(shù)實際上只能被某個對象調(diào)用,這讓全局作用域有點(diǎn)名不副實。更讓人無法接受的是:如果對象需要定義很多方法,那么就要定義很多個全局函數(shù),于是我們這個自定義的引用類型就絲毫沒有封裝性可言了。
2、原型模式
3、組合使用構(gòu)造函數(shù)模式和原型模式
4、原型鏈
5、組合繼承
6、原型式繼承
7、寄生式繼承
8、寄生組合式繼承
9、拷貝組合式繼承
關(guān)于“Javascript怎么實現(xiàn)繼承”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。