簡述原型鏈是什麼,有什麼用處?

2021-09-24 23:13:02 字數 2069 閱讀 3528

這裡是修真院前端小課堂,每篇分享文從

八個方面深度解析前端知識/技能,本篇分享的是:

【簡述原型鏈是什麼,有什麼用處?】

【修真院web小課堂】

(1)背景介紹:

什麼是原型

乙個函式可以看成乙個類,原型是所有類都有的乙個屬性,原型的作用就是給這個類的每乙個物件都新增乙個統一的方法

prototype

js都是用new來從建構函式生成乙個例項物件

建構函式生成的例項無法共享屬性和方法,考慮到這點於是將prototype屬性引入到了js中

prototype這個屬性包含乙個物件,裡面放著所有例項需要共享的方法和屬性,而不需要共享的屬性和方法可以放在建構函式中

由於所有的例項物件共享同乙個prototype物件,那麼從外界看起來,prototype物件就好像是例項物件的原型,而例項物件則好像"繼承"了prototype物件一樣。

(2)知識剖析:

__proto__和prototype

每個物件都有乙個__proto__屬性,而prototype只有函式才有

物件是由建構函式建立的,函式也是物件,函式是由function建立的,物件的__proto__等於建立者的prototype

什麼是原型鏈

每個物件都有乙個__proto__,它指向它的prototype原型物件,而prototype原型物件又具有乙個自己的原型物件,就這樣層層向下上直到乙個物件的原型prototype為null 這個查詢的路徑就是原型鏈

(3)常見問題:

如何訪問乙個物件的原型?

(4)解決方案:

proto,prototype,object.getprototypeof()

prototype,只有函式物件才擁有乙個屬性,用來訪問其原型物件

proto,是任何引用型別都擁有的屬性,指向其建構函式的prototype,但是並不是標準寫法,是乙個特殊的內部屬性

object.getprototypeof()該屬性是es5引入的乙個標準屬性,用來獲取物件的原型,其作用和__proto__是一樣

function pig(name) {

this.name = name

var a = new pig(「胖胖」);

var b = new pig(「瘦瘦」);

pig.prototype.like = 「red」

a.proto.like=「red」;

object.getprototypeof(a).like=「red」

(5)編碼實戰:

(6)拓展思考:

使用prototype需要注意什麼

盡量去修改增添,使用物件字面量建立原型方法要謹慎

function pig(name) {

this.name = name

pig.prototype = {//這個寫法必須寫到最上面,必須要在例項物件前面

like: 「red」,

var a = new pig(「胖胖」);

var b = new pig(「瘦瘦」);

object.getprototypeof(a).like=「red」

(7)參考文獻:

答:乙個函式可以看成乙個類,原型是所有類都有的乙個屬性,原型的作用就是給這個類的每乙個物件都新增乙個統一的方法

2、什麼是原型鏈

答:每個物件都有乙個__proto__,它指向它的prototype原型物件,而prototype原型物件又具有乙個自己的原型物件,就這樣層層向下上直到乙個對         象的原型prototype為null 這個查詢的路徑就是原型鏈
3、如何訪問乙個物件的原型?

答:prototype,只有函式物件才擁有乙個屬性,用來訪問其原型物件

__proto__,是任何引用型別都擁有的屬性,指向其建構函式的prototype,但是並不是標準寫法,是乙個特殊的內部屬性

object.getprototypeof()該屬性是es5引入的乙個標準屬性,用來獲取物件的原型,其作用和__proto__是一樣

簡述原型鏈是什麼,有什麼用處?

這裡是修真院前端小課堂,每篇分享文從 八個方面深度解析前端知識 技能,本篇分享的是 簡述原型鏈是什麼,有什麼用處?修真院web小課堂 1 背景介紹 什麼是原型 乙個函式可以看成乙個類,原型是所有類都有的乙個屬性,原型的作用就是給這個類的每乙個物件都新增乙個統一的方法 prototype js都是用n...

stdafx h是什麼用處?

stdafx.h標頭檔案的作用 stdafx.h檔案中包含了一些必要的標頭檔案 如afxwin.h 對應於stdafx.h有乙個stdafx.cpp檔案,該檔案內包含一句 include stdafx.h 其作用是令編譯器編譯出乙個stdafx.obj預編譯標頭檔案 pre compile head...

cdn有什麼用處

下面是大部分朋友對wdcdn的疑惑,下面一一為大家解答 cdn節點多,伺服器多,可以防禦流量攻擊嗎?cdn可以隱藏ip嗎?問 cdn節點眾多。伺服器頻寬充足,可以用來防禦流量攻擊嗎?答 乙個完善的cdn 加速網路會在不同線路,不同地區部署多個加速節點。節點一般頻寬都很充足。但是普通的cdn網路並不適...