constructor修訂問題

在模擬javascrpt類的時候需要的一項工作就是construtor重新修訂問題,下面簡要說一下。

//說明一下constructor作用
function C(){};
function P(){};
C.prototype=P.prototype;//把C的原型指向了P的原型
C.prototype.constructor;// function P(){}  C函數(shù)的原型的constructor是P函數(shù)。這里是原型鏈的內(nèi)容,即C的prototype上有一個constructor屬性,本來是指向C函數(shù)的。但是當C.prototype=P.prototype時,就指向了P。

其實construtor的作用就是重寫原型鏈,方式繼承的時候原型鏈更改到別的函數(shù)上。下面是一個例子

//父類
function Parent(){};
Parent.prototype.eating=function(){console.log("eat")};
Parent.prototype.driking=function (){console.log("drinking")};
//子類
function Children(){};
Children.prototype.playing=function(){console.log("playing")};
Children.prototype=Parent.prototype;
var children=new Children();
children.playing;//undefined

上面的代碼中,沒有重新修訂Children函數(shù)的原型指向,所以當重新調(diào)用chilren.playing的時候,就無法通過原型鏈查找到對應的方法。

下面的代碼是經(jīng)過修訂后的,就可以獲取原型鏈上對應的方法

//父類
function Parent(){};
Parent.prototype.eating=function(){console.log("eat")};
Parent.prototype.driking=function (){console.log("drinking")};
//子類
function Children(){};
Children.prototype=Parent.prototype;
//一定要先重新修訂contructor的指定,然后在在原型鏈prototype上掛函數(shù)。
Children.prototype.constructor=Children;
Children.prototype.playing=function(){console.log("playing")};
var children=new Children();
children.playing;//playing

最后總結(jié)一下就是,先父類===》》再子類===》》再繼承父類===》》重新修訂子類constructor===》》在子類原型掛接方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.繼承(接口繼承和實現(xiàn)繼承) 繼承是 OO 語言中的一個最為人津津樂道的概念。許多 OO 語言都支持兩種繼承方式...
    believedream閱讀 1,047評論 0 3
  • 本章內(nèi)容 理解對象屬性 理解并創(chuàng)建對象 理解繼承 面向?qū)ο笳Z言有一個標志,那就是它們都有類的概念,而通過類可以創(chuàng)建...
    悶油瓶小張閱讀 956評論 0 1
  • 博客內(nèi)容:什么是面向?qū)ο鬄槭裁匆嫦驅(qū)ο竺嫦驅(qū)ο缶幊痰奶匦院驮瓌t理解對象屬性創(chuàng)建對象繼承 什么是面向?qū)ο?面向?qū)ο?..
    _Dot912閱讀 1,527評論 3 12
  • 七夕,情人節(jié),應景的自然要說說愛情。 倘若不逢情人節(jié),我還是要說說愛情。 深夜了,我要說說我呀你呀他呀她呀。 自己...
    摽有梅其實七兮閱讀 484評論 0 2
  • 日暮,歸舟 憑欄 遠眺孤洲 一江秋水澄如藍 無語東流
    五月茉莉閱讀 227評論 1 4

友情鏈接更多精彩內(nèi)容