成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)于原型鏈中constructor、prototype及__proto__的問題

alanoddsoff / 3240人閱讀

摘要:最近看到一個(gè)關(guān)于原型鏈的問題,回顧一下原型鏈的知識(shí)點(diǎn)。說說為什么為什么是。首先不是自身的屬性,而是原型鏈上的,即的原型中。類似通過這樣來找到的值。,不是復(fù)制了對(duì)象,而是把指向了,所以對(duì)的修改會(huì)影響到的值。再看看這張圖一切都明朗了。

最近看到一個(gè)關(guān)于原型鏈的問題,回顧一下原型鏈的知識(shí)點(diǎn)。

function person(name)
{
    this.name = name;
    this.showME = function()
    {
    alert(this.name);
    }
};

person.prototype.form = function()
{
    alert("i come form prototype")
}
var father = new Person("JS");
alert(father.constructor);
function Subper()
{
...
}
SubPer.prototype = father;
Sub.protptype.constructor = subper;
var son = new Subper();
son.showMe();  //JS
son.from();   //i come form prototype
alert(father.constructor);  //function Subper(){}
alert(son.constructor);  //function SubPer() {}
alert(SubPer.prototype.constructor);   //function SubPer() {}




說說為什么father.constructor 為什么是function Subper(){}。
首先father.constructor 不是 father 自身的屬性,而是原型鏈上的,即father的prototype原型中。類似通過 father.__proto__.constructor 這樣來找到 constructor 的值。就這個(gè)問題而言,father.__proto__ 指向的是 Person.prototype。Subper.prototype = father ,不是復(fù)制了 father 對(duì)象,而是把 Subper.prototype 指向了 father,所以對(duì)Subper.prototype 的修改會(huì)影響到 father 的值。

此時(shí)Subper.prototype.constructor屬性實(shí)際就是father.__proto__.constructor。因此當(dāng)Subper.prototype.constructor = Subper 時(shí),son.constructor = father.__proto__.constructor =person.prototype.constrctor = Subper。

再看看這張圖一切都明朗了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/89926.html

相關(guān)文章

  • 原型鏈?zhǔn)鞘裁矗?em>關(guān)于原型鏈中constructor、prototype__proto__之間關(guān)系認(rèn)

    摘要:的隱式原型是母,母是由構(gòu)造函數(shù)構(gòu)造的,但函數(shù)的隱式原型又是。。。??赡苁强紤]到它也是由構(gòu)造函數(shù)生成的吧,所以返回的值也是。 showImg(https://segmentfault.com/img/bVyLk0); 首先,我們暫且把object類型和function類型分開來,因?yàn)?function是一個(gè)特殊的對(duì)象類型,我們這里這是便于區(qū)分,把function類型單獨(dú)拿出來。順便一提,...

    kaka 評(píng)論0 收藏0
  • 關(guān)于原型、原型鏈、和繼承

    摘要:根據(jù)定義,沒有原型,并作為這個(gè)原型鏈中的最后一個(gè)環(huán)節(jié)。偷偷貼在這里再知道了原型原型鏈,那一個(gè)對(duì)象的過程知道嗎,能手寫一個(gè)嗎。 似乎生活中常常會(huì)遇到這種情況,你去一家公司面試,前面面的都挺好,你覺得你對(duì)基礎(chǔ)算法的了解很好,各種排序,紅黑樹,二叉樹,深度/廣度優(yōu)先算法都答出來了,leetcode上的若干困難題目也都答上來了,然后面試官說,那么好吧,介紹一下你對(duì)原型的看法吧。 ???我頭發(fā)。...

    沈儉 評(píng)論0 收藏0
  • JavaScript繼承背后場(chǎng)景-prototype,__proto__, [[prototype

    摘要:實(shí)例可以通過代理來找到它,并用來檢測(cè)其構(gòu)造函數(shù)。經(jīng)典繼承圖這也是通過構(gòu)造函數(shù)來創(chuàng)建對(duì)象,但是在這一系列的對(duì)象和實(shí)例之間我們的焦點(diǎn)是放在原型鏈上。盡管,但構(gòu)造函數(shù)的屬性并不是對(duì)象自己的屬性,它實(shí)際上是通過尋找原型鏈獲得的,即所指向的地方。 繼承是面向?qū)ο缶幊陶Z言的一大核心功能點(diǎn),雖然JavaScript并不是一門真正意義上的面向?qū)ο蟮木幊陶Z言,但也通過某種手段實(shí)現(xiàn)了繼承這一功能,最常見的...

    鄒立鵬 評(píng)論0 收藏0
  • 理解javaScript原型、原型

    摘要:構(gòu)造函數(shù)的屬性指向原型對(duì)象原型對(duì)象的屬性指向構(gòu)造函數(shù)實(shí)例對(duì)象的指向原型對(duì)象所有引用類型默認(rèn)都繼承了,而這個(gè)繼承也是通過原型鏈實(shí)現(xiàn)的。第一種方式是使用操作符,只要用這個(gè)操作符來測(cè)試實(shí)例與原型鏈中出現(xiàn)過的構(gòu)造函數(shù),結(jié)果就會(huì)返回。 理解對(duì)象 首先對(duì)象的定義是:無序?qū)傩缘募?,其屬性可以包含基本值、?duì)象或者函數(shù)。嚴(yán)格來講,這就相當(dāng)于說對(duì)象是一組沒有特定順序的值。對(duì)象的每個(gè)屬性或方法都有一個(gè)名...

    NSFish 評(píng)論0 收藏0
  • 原型原型

    摘要:原型屬性在函數(shù)被定義時(shí)創(chuàng)建,初始值是一個(gè)空對(duì)象沒有自身屬性的對(duì)象。為新建對(duì)象添加方法和屬性的方式利用原型構(gòu)造器中原型屬性幾個(gè)相關(guān)方法和屬性判斷一個(gè)屬性是自身屬性還是原型屬性。來自知乎的一張圖,很清晰面向?qū)ο缶幊讨改系脑玩湀D sync github 原型屬性 prototype 在函數(shù)被定義時(shí)創(chuàng)建,初始值是一個(gè)空對(duì)象(沒有自身屬性的對(duì)象)。 為新建對(duì)象添加方法和屬性的方式 利用原型 /...

    dayday_up 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<