原型及原型鏈
原型
原型: 每個function類型對象(構(gòu)造函數(shù))都有一個prototype屬性壶辜,這就是對象的原型(顯示原型)腌零;
原型是一個對象赖瞒,包含constructor和__proto__兩個屬性以及其他定義的方法
原型有幾個特點:
1. 是一個對象外里,至少包含constructor和__proto__兩個屬性窃植;
2. 添加到原型上的方法或者屬性會被所有new出來的實例共享领铐;
3. 每個實例對象都會有一個__proto__屬性(隱式原型)悯森,其值會指向其構(gòu)造函數(shù)的原型;
4. 原型的constructor屬性指向構(gòu)造函數(shù)本身罐孝。
原型.png
原型鏈
原型鏈: 每個原型都有一個__proto__屬性呐馆,指向它對應(yīng)的構(gòu)造函數(shù)的原型,一層一層往上莲兢,直到Object汹来。Object的__proto__屬性為null
對象調(diào)用屬性和方法的時候會沿著原型鏈往上尋找,訪問的優(yōu)先級是先自己然后往上尋找改艇,直到object還沒有則返回undefined
原型鏈.png