|
60鱼币
关于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();
复制代码 |
|