摘要:它是顯示修改對(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
摘要:寫在前面如果說是一本武學(xué)典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術(shù)是從底層上去理解,那種工程師和碼農(nóng)的區(qū)別就在于對(duì)底層的理解,當(dāng)你寫完一行代碼,或者你遇見一個(gè)解決的速度取決于你對(duì)底層的理解。 寫在前面 如果說JavaScript是一本武學(xué)典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對(duì)九陽神功是這樣描述的:練成「九陽神功」后,會(huì)易筋洗髓;生出...
摘要:寫在前面如果說是一本武學(xué)典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術(shù)是從底層上去理解,那種工程師和碼農(nóng)的區(qū)別就在于對(duì)底層的理解,當(dāng)你寫完一行代碼,或者你遇見一個(gè)解決的速度取決于你對(duì)底層的理解。 寫在前面 如果說JavaScript是一本武學(xué)典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對(duì)九陽神功是這樣描述的:練成「九陽神功」后,會(huì)易筋洗髓;生出...
摘要:寫在前面如果說是一本武學(xué)典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術(shù)是從底層上去理解,那種工程師和碼農(nóng)的區(qū)別就在于對(duì)底層的理解,當(dāng)你寫完一行代碼,或者你遇見一個(gè)解決的速度取決于你對(duì)底層的理解。 寫在前面 如果說JavaScript是一本武學(xué)典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對(duì)九陽神功是這樣描述的:練成「九陽神功」后,會(huì)易筋洗髓;生出...
摘要:一旦原型對(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...
原型和原型鏈?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...
閱讀 1369·2019-08-30 15:44
閱讀 2113·2019-08-30 11:04
閱讀 529·2019-08-29 15:17
閱讀 2552·2019-08-26 12:12
閱讀 3139·2019-08-23 18:09
閱讀 931·2019-08-23 15:37
閱讀 1530·2019-08-23 14:43
閱讀 2933·2019-08-23 13:13