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

資訊專欄INFORMATION COLUMN

JS的prototype和__proto__

mingde / 954人閱讀

摘要:它是顯示修改對(duì)象的原型的屬性。是一個(gè)對(duì)象擁有的內(nèi)置屬性請(qǐng)注意是函數(shù)的內(nèi)置屬性,是對(duì)象的內(nèi)置屬性,是內(nèi)部使用尋找原型鏈的屬性。說明我們步驟是正確的。是一個(gè)引用指向的對(duì)象。

prototype和__proto__的概念

prototype是函數(shù)的一個(gè)屬性(每個(gè)函數(shù)都有一個(gè)prototype屬性),這個(gè)屬性是一個(gè)指針,指向一個(gè)對(duì)象。它是顯示修改對(duì)象的原型的屬性。

__proto__是一個(gè)對(duì)象擁有的內(nèi)置屬性(請(qǐng)注意:prototype是函數(shù)的內(nèi)置屬性,__proto__是對(duì)象的內(nèi)置屬性),是JS內(nèi)部使用尋找原型鏈的屬性。

對(duì)象的__proto__指向創(chuàng)建該對(duì)象的函數(shù)的prototype

用chrome和FF都可以訪問到對(duì)象的__proto__屬性,IE不可以。

new 的過程
 Person = function(){};
 p =  Person();

new的過程拆分成以下三步:

var p={}; 也就是說,初始化一個(gè)對(duì)象p

p.__proto__ = Person.prototype;

Person.call(p); 也就是說構(gòu)造p,也可以稱之為初始化p

關(guān)鍵在于第二步,我們來證明一下:

 Person = function(){};
 p =  Person();
alert(p.__proto__ === Person.prototype);

這段代碼會(huì)返回true。說明我們步驟2是正確的。

Person = function(){};
Person.prototype.sayName = function() {
    alert("My Name is Jacky");
};

Person.prototype.age = 27 p =  Person();
p.sayName();

p是一個(gè)引用指向Person的對(duì)象。我們?cè)赑erson的原型上定義了一個(gè)sayName方法和age屬性,當(dāng)我們執(zhí)行p.age時(shí),會(huì)先在this的內(nèi)部查找(也就是構(gòu)造函數(shù)內(nèi)部),如果沒有找到然后再沿著原型鏈向上追溯。

這里的向上追溯是怎么向上的呢?這里就要使用__proto__屬性來鏈接到原型(也就是Person.prototype)進(jìn)行查找。最終在原型上找到了age屬性。

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

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

相關(guān)文章

  • js內(nèi)功修煉之九陽神功--原型鏈

    摘要:寫在前面如果說是一本武學(xué)典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術(shù)是從底層上去理解,那種工程師和碼農(nóng)的區(qū)別就在于對(duì)底層的理解,當(dāng)你寫完一行代碼,或者你遇見一個(gè)解決的速度取決于你對(duì)底層的理解。 寫在前面 如果說JavaScript是一本武學(xué)典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對(duì)九陽神功是這樣描述的:練成「九陽神功」后,會(huì)易筋洗髓;生出...

    蘇丹 評(píng)論0 收藏0
  • js內(nèi)功修煉之九陽神功--原型鏈

    摘要:寫在前面如果說是一本武學(xué)典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術(shù)是從底層上去理解,那種工程師和碼農(nóng)的區(qū)別就在于對(duì)底層的理解,當(dāng)你寫完一行代碼,或者你遇見一個(gè)解決的速度取決于你對(duì)底層的理解。 寫在前面 如果說JavaScript是一本武學(xué)典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對(duì)九陽神功是這樣描述的:練成「九陽神功」后,會(huì)易筋洗髓;生出...

    Profeel 評(píng)論0 收藏0
  • js內(nèi)功修煉之九陽神功--原型鏈

    摘要:寫在前面如果說是一本武學(xué)典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術(shù)是從底層上去理解,那種工程師和碼農(nóng)的區(qū)別就在于對(duì)底層的理解,當(dāng)你寫完一行代碼,或者你遇見一個(gè)解決的速度取決于你對(duì)底層的理解。 寫在前面 如果說JavaScript是一本武學(xué)典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對(duì)九陽神功是這樣描述的:練成「九陽神功」后,會(huì)易筋洗髓;生出...

    morgan 評(píng)論0 收藏0
  • jsprototype、__proto__、constructor

    摘要:一旦原型對(duì)象被賦予屬性和方法那么由相應(yīng)的構(gòu)造函數(shù)創(chuàng)建的實(shí)例會(huì)繼承上的屬性和方法為什么只有函數(shù)才有屬性規(guī)范就這么定的。其它的構(gòu)造器的都是一個(gè)對(duì)象。 哪些對(duì)象有原型?所有的對(duì)象在默認(rèn)情況下都有一個(gè)原型,因?yàn)樵捅旧硪彩菍?duì)象,所以每個(gè)原型自身又有一個(gè)原型(只有一種例外,默認(rèn)的對(duì)象原型在原型鏈的頂端) prototype屬性prototype是每個(gè)函數(shù)對(duì)象都具有的屬性,被稱為原型對(duì)象,而__p...

    fizz 評(píng)論0 收藏0
  • js必經(jīng)之路 -- 原型,原型鏈

    原型和原型鏈?zhǔn)莏s中的重點(diǎn),明白了原型和原型鏈會(huì)讓我們?cè)诤竺娌还苁菍W(xué)習(xí)還是工作都會(huì)更加高效,也是成為js大神的必經(jīng)之路,并且原型和原型鏈會(huì)是面試中必不可少的話題。 之前面試時(shí)也碰到過很多關(guān)于原型和原型鏈的問題,對(duì)它了解,但沒有總結(jié)過,這些天看到一些文章有涉及到原型,就總結(jié)一下。 一,函數(shù)對(duì)象 所有引用類型(函數(shù),數(shù)組,對(duì)象)都擁有__proto__屬性(隱式原型) 所有函數(shù)擁有prototype...

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

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

0條評(píng)論

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