原型:當建立乙個函式的時候,函式自身會有一些屬性的方法,其中有乙個屬性叫prototype,它就是原型。只要是函式(非箭頭函式)都有原型
原型是解決效能問題的。
建構函式的原型,只有它的例項化物件可以使用。
物件 都有__proto__ (原型鏈)
類 都有prototype (原型)
函式的三個角色:1.函式 2.物件 3.類
換句話:
例項化物件上沒有。還會(通過自身的原型鏈)找到建構函式的原型。
如果還沒有,會(通過建構函式的原型鏈)找到object的原型為止。
再沒有就變數(undefined)函式(報錯)。
(注意:永遠三步走,自身->建構函式的原型->object的原型)
例項化物件的原型鏈 === 建構函式的原型
1function
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...