javascript中uber实现子类访问父类成员
function Animal(){}
Animal.prototype={
name:"animal",
toString:function(){
console.log(this.name);
}
};
Animal.prototype.constructor=Animal;
function Dog(){}
//用于打破对象的引用传递,防止修改子类属性对父类产生影响
var F=function(){}
F.prototype=Animal.prototype
Dog.prototype=new F();
Dog.prototype.constructor=Dog;
Dog.prototype.name="dog";
var d=new Dog();
d.toString(); //打印子类name dog
var a=new Animal();
a.toString();//打印父类name animal这个时候有这样的需求;不实例化父类,直接通过子类完完整整的调用父类的方法或属性。
实现代码如下
function Animal(){}
Animal.prototype={
name:"animal",
toString:function(){
console.log(this.name);
}
};
Animal.prototype.constructor=Animal;
function Dog(){}
//用于打破对象的引用传递,防止修改子类属性对父类产生影响
var F=function(){}
F.prototype=Animal.prototype
Dog.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的关键字。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!