分享

javascript中uber实现子类访问父类成员

 python_lover 2020-08-19
function Animal(){}Animal.prototype={    name:"animal",    toString:function(){        console.log(this.name);    }};Animal.prototype.constructor=Animal;function Dog(){}//用于打破对象的引用传递,防止修改子类属性对父类产生影响var F=function(){}F.prototype=Animal.prototypeDog.prototype=new F();Dog.prototype.constructor=Dog;Dog.prototype.name="dog";var d=new Dog();d.toString(); //打印子类name dogvar a=new Animal();a.toString();//打印父类name animal

上面代码通过实例化子类和父类,分别调用toString()实现了继承的关系。

这个时候有这样的需求;不实例化父类,直接通过子类完完整整的调用父类的方法或属性。

实现代码如下

function Animal(){}Animal.prototype={    name:"animal",    toString:function(){        console.log(this.name);    }};Animal.prototype.constructor=Animal;function Dog(){}//用于打破对象的引用传递,防止修改子类属性对父类产生影响var F=function(){}F.prototype=Animal.prototypeDog.prototype=new F();Dog.prototype.constructor=Dog;Dog.prototype.name="dog";Dog.uber=Animal.prototype;var d=new Dog();d.toString(); //打印子类name dog//var a=new Animal();//a.toString();//打印父类name animal/** * Dog.prototype.constructor===d.constructor */Dog.prototype.constructor.uber.toString();//打印animal(方式1)d.constructor.uber.toString(); //打印animal(方式2)

通过面简单的三行红色代码就实现了子类访问父类成员的需求。

 

本来想模仿java的使用super访问父类,后来想想super是javascript的关键字。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多