摘要:它是顯示修改對象的原型的屬性。是一個對象擁有的內置屬性請注意是函數的內置屬性,是對象的內置屬性,是內部使用尋找原型鏈的屬性。說明我們步驟是正確的。是一個引用指向的對象。
prototype和__proto__的概念
prototype是函數的一個屬性(每個函數都有一個prototype屬性),這個屬性是一個指針,指向一個對象。它是顯示修改對象的原型的屬性。
__proto__是一個對象擁有的內置屬性(請注意:prototype是函數的內置屬性,__proto__是對象的內置屬性),是JS內部使用尋找原型鏈的屬性。
對象的__proto__指向創建該對象的函數的prototype
用chrome和FF都可以訪問到對象的__proto__屬性,IE不可以。
new 的過程Person = function(){}; p = Person();
new的過程拆分成以下三步:
var p={}; 也就是說,初始化一個對象p
p.__proto__ = Person.prototype;
Person.call(p); 也就是說構造p,也可以稱之為初始化p
關鍵在于第二步,我們來證明一下:
Person = function(){}; p = Person(); alert(p.__proto__ === Person.prototype);
這段代碼會返回true。說明我們步驟2是正確的。
Person = function(){}; Person.prototype.sayName = function() { alert("My Name is Jacky"); }; Person.prototype.age = 27 p = Person(); p.sayName();
p是一個引用指向Person的對象。我們在Person的原型上定義了一個sayName方法和age屬性,當我們執行p.age時,會先在this的內部查找(也就是構造函數內部),如果沒有找到然后再沿著原型鏈向上追溯。
這里的向上追溯是怎么向上的呢?這里就要使用__proto__屬性來鏈接到原型(也就是Person.prototype)進行查找。最終在原型上找到了age屬性。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90557.html
摘要:寫在前面如果說是一本武學典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術是從底層上去理解,那種工程師和碼農的區別就在于對底層的理解,當你寫完一行代碼,或者你遇見一個解決的速度取決于你對底層的理解。 寫在前面 如果說JavaScript是一本武學典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對九陽神功是這樣描述的:練成「九陽神功」后,會易筋洗髓;生出...
摘要:寫在前面如果說是一本武學典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術是從底層上去理解,那種工程師和碼農的區別就在于對底層的理解,當你寫完一行代碼,或者你遇見一個解決的速度取決于你對底層的理解。 寫在前面 如果說JavaScript是一本武學典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對九陽神功是這樣描述的:練成「九陽神功」后,會易筋洗髓;生出...
摘要:寫在前面如果說是一本武學典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術是從底層上去理解,那種工程師和碼農的區別就在于對底層的理解,當你寫完一行代碼,或者你遇見一個解決的速度取決于你對底層的理解。 寫在前面 如果說JavaScript是一本武學典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對九陽神功是這樣描述的:練成「九陽神功」后,會易筋洗髓;生出...
摘要:一旦原型對象被賦予屬性和方法那么由相應的構造函數創建的實例會繼承上的屬性和方法為什么只有函數才有屬性規范就這么定的。其它的構造器的都是一個對象。 哪些對象有原型?所有的對象在默認情況下都有一個原型,因為原型本身也是對象,所以每個原型自身又有一個原型(只有一種例外,默認的對象原型在原型鏈的頂端) prototype屬性prototype是每個函數對象都具有的屬性,被稱為原型對象,而__p...
原型和原型鏈是js中的重點,明白了原型和原型鏈會讓我們在后面不管是學習還是工作都會更加高效,也是成為js大神的必經之路,并且原型和原型鏈會是面試中必不可少的話題。 之前面試時也碰到過很多關于原型和原型鏈的問題,對它了解,但沒有總結過,這些天看到一些文章有涉及到原型,就總結一下。 一,函數對象 所有引用類型(函數,數組,對象)都擁有__proto__屬性(隱式原型) 所有函數擁有prototype...
閱讀 1355·2019-08-30 15:44
閱讀 2099·2019-08-30 11:04
閱讀 518·2019-08-29 15:17
閱讀 2540·2019-08-26 12:12
閱讀 3133·2019-08-23 18:09
閱讀 922·2019-08-23 15:37
閱讀 1522·2019-08-23 14:43
閱讀 2920·2019-08-23 13:13