JS之原型鏈

2021-10-05 02:19:08 字數 1492 閱讀 7905

所有物件都是通過new 函式()建立的,該函式叫做建構函式

1.函式可以產生物件

2.所有物件都是靠函式產生的

函式也是乙個物件,

物件賦值給變數後,變數中儲存的是位址,位址指向物件所在記憶體

var u1 =

var u2 = u1;

u2.name =

"bcd"

console.

log(u1 === u2)

//true,u1把記憶體位址給了u2

原型的本質就是物件-所有函式都有原型屬性

function

test()

var p =

test()

; console.

log(p.prototype)

;//undefined

預設情況下,prototype是乙個object物件

prototype預設包含乙個屬性:constructor,該屬性指向函式物件本身

console.

log(test === test.prototype.cunstructor)

//永遠成立

所有的物件都有隱式原型_proto_屬性

-隱式原型是乙個物件,指向建立該物件的建構函式的原型prototype

-在查詢物件成員時,物件本身沒有該成員則會到隱式原型中查詢

-隱式原型和原型出現的根本原因是:js沒有記錄型別的元資料,因此js只能通過物件的隱式原型找到建立他的函式原型,從而確定其型別。

-因為自定義函式上的隱式原型_prop_指向function,function指向object,而object上有這些屬性。

所有函式的隱式原型都指向function的原型

所有的函式原型的隱式原型,都指向object原型

原型鏈:由於原型prototype本身是物件,因此他也有隱式原型,指向的規則不變,從某個物件出發,依次尋找隱式原型的指向,將形成乙個鏈條,改鏈條叫做原型鏈。

-在查詢物件成員時,若物件本身沒有該成員,則會在原型鏈中查詢。

特殊情況:

-function的隱式原型指向自己的原型

-object原型的隱式原型指向null

總匯題:

JS之原型鏈

函式原型 即prototype屬性 函式的顯示原型與隱式原型 訪問乙個物件的屬性時,先在自身屬性中查詢,找到返回 如果沒有,再沿著 proto 這條鏈向上查詢,找到返回 如果最終沒找到,返回undefined 別名 隱式原型鏈 作用 查詢物件的屬性 方法 注意 讀取物件的屬性值時 會自動到原型鏈中查...

JS之原型鏈, proto

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

js之原型鏈 繼承

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