js原型鏈中prototype, proto

2021-09-05 10:33:42 字數 799 閱讀 8623

今天開始認真重新過一遍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...