Person.prototype
和Object.create(Person.prototype)
之间有什么区别?我可以使用它们吗?
function Person(name) {
this.name = name;
}
Person.prototype.copy = function() {
return new this.constructor(this.name);
};
// define the Student class
function Student(name) {
Person.call(this, name);
}
// inherit Person
Student.prototype = Person.prototype;
//Student.prototype = Object.create(Person.prototype);
答案 0 :(得分:7)
最好使用Student.prototype = Object.create(Person.prototype)
代替Student.prototype = Person.prototype;
原因是在后一种情况下两个原型共享一个共同的对象。因此,我们在Student原型中添加一个新方法,人物原型也将被访问该属性。例如: -
Student.prototype = Person.prototype
Student.prototype.test = function(){ alert('in student');};
var person = new Person();
person.test();
这将提醒学生<#39;