好的,我的工作:
const personProto2 = {
calAge() {
console.log(2021 - this.birthday);
},
};
const rein = Object.create(personProto2);
rein.name = "Rein";
rein.birthday = 1945;
rein.calAge();
但是如果我这样做:
const Person = function (name, birthday) {
this.name = name;
this.birthday = birthday;
};
Person.prototype.calAge = function () {
console.log(2021 - this.birthday);
};
const rein = Object.create(Person);
rein.name = "Rein";
rein.birthday = 1945;
rein.prototype.calAge();
它不工作。但是函数也是一个对象。对象也有原型
那么为什么第二个例子不起作用呢?
我认为你的意思是使用new
时创建一个空白,普通的JavaScript对象。
new
操作符允许您创建用户定义对象类型或具有构造函数的内置对象类型之一的实例。现在,可以调用calAge
方法。
function Person(name, birthday) {
this.name = name;
this.birthday = birthday;
};
Person.prototype.calAge = function () {
console.log(2021 - this.birthday);
};
const rein = new Person("Rein", 1945);
rein.calAge();