真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Javascript的類繼承是什么

本篇內(nèi)容介紹了“Javascript的類繼承是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營產(chǎn)品:響應(yīng)式網(wǎng)站開發(fā)、成都品牌網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。

說到Javascript類繼承,就必然離不開原型鏈,但只通過原型鏈實(shí)現(xiàn)的繼承有著不少缺陷。

無參數(shù)類繼承的問題

先看一段示例代碼,實(shí)現(xiàn)B繼承于A:

function A() {  }  A.prototype.a1 = function() {  };  function B() {  }  B.prototype = new A();  B.prototype.b1 = function() {  };  var b = new B();  alert(b.constructor == A); // true  alert(b.constructor == B); // false

這段代碼的主要問 題是:

1、需要實(shí)例化A作為B的原型,此時(shí)就執(zhí)行了A的構(gòu)造函數(shù)。但按照面向?qū)ο蟮囊?guī)則,實(shí)例化B之前,B及其父類A的構(gòu)造函數(shù)都不應(yīng)該執(zhí)行。

2、更改了B的prototype,導(dǎo)致b.constructor不是B而是A。

有參類繼承的問題

假設(shè)A和B都有兩個(gè)字符串參數(shù)s1和s2,A中計(jì)算了兩段字符串的總長度,B直接以s1、s2為參數(shù)調(diào)用A:

function A(s1, s2)   {  this.totalLength = s1.length + s2.length;  }  A.prototype.a1 = function()   {  };  function B(s1, s2)   {  }  B.prototype = new A();  B.prototype.b1 = function()   {  };  new B(“ab”, “123″);

可以看到,這段代碼中根本沒有辦法把s1和s2傳到A,而又因?yàn)閷?shí)例化A作為B的原型時(shí)沒有 參數(shù),所以出現(xiàn)了異常:

s1 is undefined

解決方案

s1 和s2的作用域只在B內(nèi),要把它們傳到A,就只能在B中操作,借助函數(shù)的apply方法就可以實(shí)現(xiàn)之:

function B(s1, s2)   {  A.apply(this, arguments);  alert(this.totalLength);  }

接下來的問題就是如何把A的方法添加到B的原型中去。這也不 難,只要遍歷A.prototype,把方法復(fù)制到B.prototype即可。要注意的是,對(duì)于同名的方法,自然是子類優(yōu)先(重載), 因而不能覆蓋:

for (var m in A.prototype)   {  if (!B.prototype[m])   { // 父類不能覆蓋子類的方法  B.prototype[m] = A.prototype[m];  }  }

“Javascript的類繼承是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


當(dāng)前題目:Javascript的類繼承是什么
瀏覽路徑:http://weahome.cn/article/pijdgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部