关于JS继承的问题 这个该如何实现
var obja = { a: 1, testA: function() { alert("A" + this.a + "次"); this.a++; } };
var objb = { a: 1, testB: function() { alert("B" + this.a + "次"); this.a++; } };
var objc = { a: 1, testC: function() { alert("C" + this.a + "次"); this.a++; } };
var obj=new Object();
我想用obj来继承 obja,objb,objc 拥有原来对象的所有方法,但又能拥有 原来所有的数据obja.a objb.a objc.a
还有如果我子类写有obj.testA=function(){base.a+=10;base.testA();} 这里的base我只是举个例子,意思就是有办法调用基类原来的方法,并可以用到基类原来的属性.
var arr = new Array("A", "B", "C");
for (var i = 0; i < 20; i++) {
eval("obj.test" + arr[Math.round(Math.random() * 10000) % 3] + "();");
}
通过这个循环,那么,执行一次test X 就会做相应的增加. 当然不是递增的.因为每个方法都有自己的私有数据a
这只是个例子,JS能实现吗.
var objb = { a: 1, testB: function() { alert("B" + this.a + "次"); this.a++; } };
var objc = { a: 1, testC: function() { alert("C" + this.a + "次"); this.a++; } };
var obj=new Object();
我想用obj来继承 obja,objb,objc 拥有原来对象的所有方法,但又能拥有 原来所有的数据obja.a objb.a objc.a
还有如果我子类写有obj.testA=function(){base.a+=10;base.testA();} 这里的base我只是举个例子,意思就是有办法调用基类原来的方法,并可以用到基类原来的属性.
var arr = new Array("A", "B", "C");
for (var i = 0; i < 20; i++) {
eval("obj.test" + arr[Math.round(Math.random() * 10000) % 3] + "();");
}
通过这个循环,那么,执行一次test X 就会做相应的增加. 当然不是递增的.因为每个方法都有自己的私有数据a
这只是个例子,JS能实现吗.
...全文
相关推荐
js代码-Javascript继承问题
js代码-Javascript继承问题
js代码-组合继承1
js代码-组合继承1
js继承.doc
javascript做为一门脚本语言,但面向对象思想在其中也有体现,本文档阐述和总结了js中继承的实现,及个方法的利弊!
java script 继承的实现
博文链接:https://kuangbaoxu.iteye.com/blog/206450
JS继承实现方式详解[项目代码]
本文详细介绍了JavaScript中继承的几种实现方式,包括原型链继承、构造函数继承、组合继承、寄生组合继承以及ES6 class继承。每种继承方式都通过代码示例展示了其实现原理,并分析了各自的优缺点和适用场景。原型链继承通过让子类的prototype指向父类实例实现继承,但存在引用属性共享问题;构造函数继承通过call方法调用父类构造函数,解决了引用属性共享问题,但方法无法复用;组合继承结合了前两者的优点,但会调用两次父类构造函数;寄生组合继承是最优的ES5方案,解决了所有问题;ES6 class继承语法简洁,是现代开发的首选。文章最后总结了各种继承方式的特点,并推荐在现代开发中优先使用ES6 class继承。


