今天開始認真重新過一遍js最基礎的東西。話不多說,開始乾貨。
1,每乙個建構函式都有乙個屬性prototype,它是乙個指標,指向原型物件。
2,每乙個例項物件都有乙個__oproto__
的屬性,同樣,它也是乙個指標,它也指向原型物件。
3,每乙個原型物件都有乙個constructor屬性,它是乙個指標,它指向它的建構函式。
接下來講一下js中的繼承,因為es5沒有類的概念。
所以用原型繼承來實現繼承。直接上**吧。
function father()
}father.prototype.str = "abc";
function child()
child.prototype = new father();
var childobj = new child();
console.log(childobj.str);
childobj.fn();
可以知道改變了子建構函式的原型指標,使之指向新new的父物件。
這樣新new的父物件就是子建構函式的原型物件。
當新new的子物件訪問屬性時,先查詢自己例項的this是否有無,若沒有就在原型物件中找,
原型物件也是同理,先找自己的this例項再再找原型物件裡有沒有,這樣就實現了繼承。
簡單的來說是以下的圖
任何原型物件都是繼承的終點都是object。
js中的原型prototype
var arr1 new array 12,34,98,43,38,79,56,1 arr1.sum function var result 0 for var i 0 i如果現在還有個arr1 物件也要求和 var arr2 new array 54,29,1,10 那麼還要給 arr2再新增乙個...
原型prototype與原型鏈 proto
基於內建類原型擴充套件方法 以一道題為例,剖析原型與原型鏈的底層機制 呼叫當前例項物件的某個屬性 成員訪問 先看是否是自己的私有屬性,如果是則返回私有屬性的值 如果不是則沿著原型鏈 proto 向上查詢所屬類原型中的公有屬性 方法,直到查詢到基類object的原型為止。f1.proto gety 跳...
JS 原型(prototype)詳解
首先來看一段 function c function f 在js中 function 關鍵字有兩個含義,既可以把它當作乙個普通函式關鍵字,也可以把它當作類的建構函式 即定義類 關鍵字。上面定義的兩個函式,不管你是想定義乙個類的建構函式還是就定義乙個普通函式。它們都包含乙個prototype和cons...