1. 程式人生 > >JS中的原型

JS中的原型

函數 普通 bject undefined 構造函數 原型對象 define 一個 per

1、我們所創建的每一個函數,解析器都會向函數中添加一個屬性prototype,這個屬性對應著一個對象,這個對象就是我們所謂的原型對象。

2、如果函數作為一個普通函數調用,prototype沒有任何作用,當該函數以構造函數的形式調用時,它所創建的對象中都會有一個隱含的屬性,指向該構造函數的原型對象,我們可以通過__ptoto__來訪問該屬性。

3、原型對象就相當於一個公共的區域,所有同一個類的實例都可以訪問到這個原型對象,我們可以將對象中共有的內容,統一設置到原型對象中。

4、當我們訪問對象的屬性或方法時,它會先在對象自身中尋找,如果找到則直接引用,如果沒有則會去原型對象中尋找,如果找到則直接使用。

5、使用in檢查對象中是否含有某個屬性時,如果對象中沒有但原型中有,也會返回true。

6、可以使用對象的hasOwnProperty()來檢查對象自身中是否含有該屬性,使用該方法只有當對象自身中含有屬性時,才會返回true。

7、原型對象也是對象,所以它也有原型,當我們使用一個對象的屬性或方法時,會先在自身中尋找,自身中如果有,則直接使用,如果沒有則去原型對象中尋找,如果原型對象中有,則使用如果沒有則去原型的原型中尋找,直到找到Object對象的原型,Object對象的原型沒有原型,如果仍然沒有,則返回undefined。

JS中的原型