1. 程式人生 > >原型__proto__和prototype

原型__proto__和prototype

    1.在JS裡,萬物皆物件。方法(Function)是物件,方法的原型(Function.prototype)是物件。因此,它們都會具有物件共有的特點。即:物件具有屬性__proto__,可稱為隱式原型,一個物件的隱式原型指向構造該物件的建構函式的原型,這也保證了例項能夠訪問在建構函式原型中定義的屬性和方法。

    2.方法(Function)
    方法這個特殊的物件,除了和其他物件一樣有上述__proto__屬性之外,還有自己特有的屬性——原型屬性(prototype),這個屬性是一個指標,指向一個物件,這個物件的用途就是包含所有例項共享的屬性和方法(我們把這個物件叫做原型物件)。原型物件也有一個屬性,叫做constructor,這個屬性包含了一個指標,指回原建構函式。
在這裡插入圖片描述


    通過建構函式Foo()例項化的物件f2和f1具有屬性__proto__,可稱為隱式原型,指向構造該物件的建構函式的原型,也就是f2和f1可以訪問建構函式Foo()的原型物件

    foo()有一個prototype屬性,這個屬性是一個指標,指向一個物件,這個物件的用途就是包含所有例項(這裡是f2和f1)共享的屬性和方法(我們把這個物件叫做原型物件)。

    原型物件也有一個屬性,叫做constructor,這個屬性包含了一個指標,指回原建構函式。

參考→ http://www.cnblogs.com/smoothLily/p/4745856.html