关于JS的原型链继承,我看网上的写法都是按照写法一(见如下代码)写的,先更改子类的原型对象为父类的实例化对象,然后再修改父类的constructor属性。
但为什么不能直接按照写法二写呢?直接修改子类的原型对象的隐式原型属性为父类的实例化对象,不是直接就解决了吗?function Supper(){
this.supProp = 'Supper property';
}
Supper.prototype.showSupperProp = function(){
console.log(this.supProp);
}
function Sub(){
this.subProp = 'Sub property';
}
Sub.prototype.showSubProp = function(){
console.log(this.subProp);
}
// 写法一(网上的写法)
Sub.prototype = new Supper()
Sub.prototype.constructor = Sub
// 写法二(我认为的写法)
// Sub.prototype.__proto__ = new Supper()
var sub = new Sub();
sub.showSupperProp();
|