眾所周知,prototype是乙個屬性物件,只要建立乙個新函式,就會根據特定的規則為該函式建立乙個prototype屬性,這個屬性指向函式的原型物件。在預設情況下,所有原型物件都會自動獲得乙個constructor(建構函式)屬性,這個屬性包含乙個指向prototype屬性所在函式的指標。
需要注意的是,prototype是乙個物件,他具體的內部結構是這樣的:
//建立乙個原型物件
function
foo(){};
console.log(
typeof foo.prototype); //
'object'
foo.prototype.x=1;
foo.prototype.show=function()
//則其內部結構
foo.prototype
根據其內部結構我們再來看最上面的一句話,每個由原型物件建立的物件例項,都會有乙個prototype屬性,其指向原型物件的prototype屬性。原型物件都會自動獲得乙個constructor屬性,這個屬性包含乙個指向prototype屬性所在函式的指標,即在這裡的 foo.prototype.constructor指向foo.
接下來我們在定義這樣一段**
var foo=newfoo();
foo.name="小明";
當呼叫建構函式建立乙個示例之後,該例項的內部將包含乙個指標(內部屬性__protot__),它將指向建構函式的原型物件,這裡就是foo.prototype
這裡,之所以foo物件例項能夠呼叫show()方法的原因就是:js引擎在foo物件中沒有找到show()方法,便通過其_proto_屬性向上找到foo.prototype屬性裡面的show()方法,來完成呼叫。
簡單理解js的prototype屬性
prototype屬性是您有能力向物件新增屬性和方法 先介紹乙個下面要用到的函式,json.stringify value 這個函式的作用是 把傳入的引數value 物件或者陣列 變成字串,它有三個引數,第乙個引數是必須的,其餘的兩個引數可填可不填。var ob 超級簡單的空物件 alert jso...
JSt中物件的prototype屬性
jst中物件的prototype屬性,是用來返回物件型別原型的引用的。我們使用prototype屬性提供物件的類的一組基本功能。並且物件的新例項會 繼承 賦予該物件原型的操作。但是這個prototype到底是怎麼實現和被管理的呢?對於物件的prototype屬性的說明,jscript手冊上如是說 所...
js的Prototype屬性 解釋及常
解釋及常用方法 rel noopener noreferrer js的prototype屬性 解釋及常用方法 jacky民工 函式 原型 每乙個建構函式都有乙個屬性叫做原型 prototype,下面都不再翻譯,使用其原文 這個屬性非常有用 為乙個特定類宣告通用的變數或者函式。prototype的定義...