关于javascript:无法设置undefined JS的属性’name’

Cannot set property 'name' of undefined JS

本问题已经有最佳答案,请猛点这里访问。

我试图理解JavaScript原型,当我尝试对其进行编码时,会得到一个错误:

1
2
3
4
5
6
7
8
function Person(firstname, last name) {
  this.firstname = firstname;
  this.lastname = lastname;
}

var A = new Person('John', 'Doe');

A.prototype.name = 'Toby';

我得到一个错误,说明无法设置未定义的属性"name"。我不能在它的对象A的原型上分配一个属性吗?这只是一个简单的练习来了解原型


对象没有原型属性(除非创建原型属性)。通常只分配给构造函数的prototype属性:

1
2
3
4
5
6
7
8
9
10
function Person(firstname, lastname) {
  this.firstname = firstname;
  this.lastname = lastname;
}

Person.prototype.name = 'Toby';

var A = new Person('John', 'Doe');

// A.name === 'Toby';