2 原型和原型鏈的關係以及查詢順序

2022-03-08 21:26:09 字數 803 閱讀 6770

原型:當建立乙個函式的時候,函式自身會有一些屬性的方法,其中有乙個屬性叫prototype,它就是原型。

只要是函式(非箭頭函式)都有原型

原型是解決效能問題的。

建構函式的原型,只有它的例項化物件可以使用。

物件 都有__proto__ (原型鏈)

類 都有prototype (原型)

函式的三個角色:1.函式 2.物件 3.類

換句話:

例項化物件上沒有。還會(通過自身的原型鏈)找到建構函式的原型。

如果還沒有,會(通過建構函式的原型鏈)找到object的原型為止。

再沒有就變數(undefined)函式(報錯)。

(注意:永遠三步走,自身->建構函式的原型->object的原型)

例項化物件的原型鏈 === 建構函式的原型

1

function

fn()

5 let f = new

fn;6 function.prototype.a = 3;

7 object.prototype.a = 4;

8 console.log(f.a);//

4 //f 自身沒有 a 通過原型鏈(

__proto__

)找到建構函式 fn 的原型(prototype),

//fn 也沒有變數 a, 通過原型鏈找到 object 的原型,object 的原型上的 a=4

//(第三步的時候一定會找到 object 的原型)

9 console.log(fn.a);//

3

原型以及原型鏈的理解

借用大佬的話就是萬物皆可為物件,但是物件如此之多,每個物件都要寫共有的方法麼,客觀上看我覺得這種事情也不可能,這時候就需要乙個類似於倉庫的東西,如果你手裡有就用你的,如果沒有就去找倉庫的,你可以在有使用想法的時候,提前準備放到倉庫裡,等使用的時候再去倉庫呼叫。接下來說的就是把這個倉庫對應到那個原型物...

原型以及原型鏈的學習隨筆

一 原型 1 定義 原型是function對像的乙個屬性,他定義了建構函式製造出的物件的公共祖先 通過該建構函式產生的物件,可以繼承該原型的屬性和方法。原型也是對像。prototype person.prototype.name jams function person var person new...

原型及原型鏈繼承之間的關係

什麼是原型?1.原型產生的原因 例項化其實是乙個很耗費記憶體空間的,通過建構函式去例項物件的時候,每乙個物件中的屬性和方法都是在自己的空間,那麼當有多個物件的時候,這些屬性和方法就有多少個在各自的空間中存在在,所以很浪費空間,因此,為了解決這個問題,實現資料共享,原型就產生了。2.建構函式中有個pr...