簡體   English   中英

Javascript對象的prototype屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM