JS之原型鏈

2021-09-25 05:32:57 字數 1382 閱讀 7782

函式原型(即prototype屬性)函式的顯示原型與隱式原型

* 訪問乙個物件的屬性時,

* 先在自身屬性中查詢,找到返回

* 如果沒有, 再沿著__proto__這條鏈向上查詢, 找到返回

* 如果最終沒找到, 返回undefined

* 別名: 隱式原型鏈

* 作用: 查詢物件的屬性(方法)

注意:

讀取物件的屬性值時: 會自動到原型鏈中查詢

設定物件的屬性值時: 不會查詢原型鏈, 如果當前物件中沒有此屬性, 直接新增此屬性並設定其值

方法一般定義在原型中, 屬性一般通過建構函式定義在物件本身上

記憶:

1. 函式的顯示原型指向的物件預設是空object例項物件(但object不滿足)

2. 所有函式都是function的例項(包含function)

3. object的原型物件是原型鏈盡頭

原型鏈基礎圖

原型鏈公升級版

原型鏈用於instance of判斷

function foo() 

var f1 = new foo()

console.log(f1 instanceof foo) // true

console.log(f1 instanceof object) // true

總結:1. instanceof是如何判斷的?表示式:a instanceof b如果b函式的顯式原型物件在a物件的原型鏈上, 返回true, 否則返回false2. function是通過new自己產生的例項

判斷**

JS之原型鏈

所有物件都是通過new 函式 建立的,該函式叫做建構函式 1.函式可以產生物件 2.所有物件都是靠函式產生的 函式也是乙個物件,物件賦值給變數後,變數中儲存的是位址,位址指向物件所在記憶體 var u1 var u2 u1 u2.name bcd console.log u1 u2 true,u1把...

JS之原型鏈, proto

對於剛剛接觸js的人來說,js的原型鏈是有點不容易理解。但是,它絕對沒有那麼複雜。1.proto 叫做隱式原型 在js中,每個物件都會有乙個內建屬性 prototype 目前所有的瀏覽器都可以通過 proto 屬性來訪問這個內建屬性。但是這並不是乙個正式的api,在es6中,object.setpr...

js之原型鏈 繼承

首先來總結一下自己對原型鏈的的理解,直白的說就是 為例項物件查詢方法屬性提供乙個橋梁,在原型鏈中,proto 是至關重要的東西,上圖 繼承,說白了就是繼承父親的屬性,方法 繼承屬性可以使用father.call this,name,age,來實現 繼承方法就不行了,得使用原型物件的查詢機制 發不多說...