所有物件都有自己的原型物件,由於原型物件也是物件,所以它也有自己的原型。因此,就會形成乙個「原型鏈」。
所有物件都繼承了object.prototype
的屬性。這就是所有物件都有valueof
和tostring
方法的原因,因為這是從object.prototype
繼承的。
object.prototype
的原型是null
。因此,原型鏈的盡頭就是null
。
原型鏈是 樹形結構,所以學好資料結構,有助於理解原型鏈。
__proto__ 是物件的屬性。
prototype 是函式的屬性。
共有屬性 == 原型
個人理解,如果要給這個「__proto__ 」找乙個對應的中文翻譯,那就是→「找到構造此物件的那個函式的共有屬性」。
注意大小寫,number 和 number 是不同的
所以:
number.__proto__ = function.prototype
object.__proto__ = function.prototype
function.__proto__ == function.prototye
所以:
var number = new number()
number.__proto__ = number.prototype
var object = new object()
object.__proto__ = object.prototype
var function = new function()
function.__proto__ = function.prototype
所有物件都有 tostring 和 valueof 屬性,他們存放在乙個物件裡(公用屬性組成的物件),即 object.prototype 裡。 JS 物件 JS原型 原型鏈
參考學習 js物件 構造器函式 建立物件的函式。物件分為普通物件和函式物件。所有物件都有 proto 屬性 函式物件不止有 proto 屬性,還有prototype屬性 稱為原型物件 1.new function 產生的物件都是函式物件。2.所有函式物件的 proto 都指向function.pro...
關於js 原生原生鏈
可以這麼理解 1 所有的引用型別都有乙個 proto 隱式原型 屬性,屬性值是乙個普通的物件 2 所有的函式都有乙個prototype 顯示原型 屬性,屬性值是乙個普通的物件 3 所有引用型別都有乙個constructor 建構函式 屬性,該屬性 是乙個指標 指向它的建構函式 4 所有引用型別的 p...
js 原型與原型鏈
5條原型規則 1.所有的引用型別 陣列 物件 函式 都具有物件特性,即可自由擴充套件屬性 除了 null 除外 2.所有的引用型別 陣列 物件 函式 都有乙個 proto 隱式原型 屬性,屬性值是乙個普通的物件。3.所有的函式,都有乙個prototype 顯式原型 屬性,屬性值也是乙個普通的物件。4...