為了避免自定義構(gòu)造器中每一個(gè)對象都擁有完全一樣的屬性和方法造成內(nèi)存耗用的問題,我們可以通過原型將其中共享的部分都放在一塊地方被引用,從而達(dá)到共享的目的。
-
原型
對象的prototype屬性指定了它的原型對象,可以用.運(yùn)算符直接讀它的原型對象屬性,當(dāng)寫這個(gè)屬性時(shí)才在它自己內(nèi)部產(chǎn)生實(shí)際的屬性。
原型
可以看到,當(dāng)我們調(diào)用其中的屬性,而對象沒有時(shí),就會(huì)順著原型鏈上面找到它原型中的方法。
-
原型鏈
不僅創(chuàng)造的對象可以指向自定義構(gòu)造器中的原型對象獲取里面的屬性,還可以指向引擎內(nèi)部的原型對象來獲取里面的方法和屬性,同理自定義構(gòu)造器是由函數(shù)申明的,也可以指向function里面的方法和屬性。
原型鏈- 原型鏈的屬性查找,屬性修改(自身屬性),屬性刪除(無法刪除原型鏈)
- 注意,使用object.hasOwnProperty的時(shí)候,如果返回值為false,要么不存在,要么改屬性在原型鏈上面