[英]Javascript object's prototype property
我對原型對象有疑問。
我了解到構造函數具有原型屬性(不是[[prototype]]屬性),它表示原型對象。
例如)如果函數的名稱為Person,則原型對象的名稱為Person.prototype
所以我在下面輸入了這段代碼。
function Person(name) {
this.name = name;
}
var foo = new Person('foo');
console.dir(Person);
如果我的想法正確,Person函數的原型屬性必須指向Person.prototype,但實際結果會有所不同。
但是我的書說:
為什么Person.prototype的名稱是“ Object”? 我不知道為什么...我的頭腦會被打破...
有人請回答.. :(
您的Person()
函數具有prototype
屬性。 Person().prototype
之所以稱為Object
,是因為它確實是一個對象。 在控制台中,純粹是說prototype屬性是一個對象。
由於構造函數的名稱,它顯示Person,可能是因為作者使用了不同的JavaScript /瀏覽器版本,或完全使用了另一個版本。 您獲得的“對象”是正常的,並且您的代碼應正常工作。 您可以忽略差異。
函數的prototype
屬性是允許您將屬性添加到代碼中。 這是一個例子:
function Person(name, age, id) {
this.name = name;
this.age = age;
this.id = id;
}
var me = new Person("Brian", 12, 0);
然后在代碼中稍后,如果您想向person函數添加屬性,例如我最喜歡的編程語言:
Person.prototype.favLanguages = null;
如果要定義我喜歡的語言,可以執行以下操作:
me.favLanguages = ['JavaScript', 'Java', 'HTML', 'CSS'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.