Javascript对象的原型属性

时间:2017-07-09 06:17:13

标签: javascript prototype-programming

我对原型对象有疑问。

我了解到构造函数有原型属性(不是[[prototype]]属性),它表示原型对象。

ex)如果函数的名称是Person,则原型对象的名称将是Person.prototype

所以我在下面输入了这段代码。

function Person(name) {
    this.name = name;
}

var foo = new Person('foo');

console.dir(Person);

如果我的想法是对的,Person函数的prototype属性必须指向Person.prototype,但实际结果是不同的。

screenshot of my browser

但是我的书说:

photograph of my book

为什么Person.prototype的名字'对象' ???我不知道为什么...... 我的精神会被打破......

有人请回答.. :(

1 个答案:

答案 0 :(得分:0)

您的image[image_mask,:] = np.nan 函数具有Person()属性。 prototype被称为Person().prototype,因为它确实是一个对象。在控制台中,纯粹是说prototype属性是一个对象。

由于构造函数名称,它显示Person,可能是因为作者使用了不同的JavaScript / Browser版本,或者完全使用了另一个版本。你得到的'对象'是正常的,你的代码应该正常工作。你可以忽略这种差异。

函数的Object属性允许您向代码添加属性。这是一个例子:

prototype

然后在代码中稍后如果要向person函数添加属性,就像我最喜欢的编程语言一样:

function Person(name, age, id) {
  this.name = name;
  this.age = age;
  this.id = id;
}

var me = new Person("Brian", 12, 0);

如果您想定义我喜欢的语言,您可以这样做:

Person.prototype.favLanguages = null;