ES5的继承实现,这里以最佳实践:寄生组合式继承方式来实现。(为什么是最佳实践,前面有随笔讲过了,可以参考)
function Super(name) {
this.name = name;
}
Super.prototype.sayName = function() {
console.log(this.name)
}
function Sub(name, age) {
Super.call(this, name);
this.age = age;
}
Sub.prototype.sayAge = function() {
console.log(this.age)
}
Sub.prototype = Object.create(Super.prototype, {
constructor: {
value: Sub,
writable: true,
configurable: true
}
});
这里的Object.create可以替换成Object.setPrototypeOf,好处是不用再手动绑定constructor的指向。
这是ES5继承,再看下ES6的继承
end
原文:https://www.cnblogs.com/yanchenyu/p/11459334.html