作者:大大文人 | 来源:互联网 | 2023-09-04 09:14
这个问题已经在这里有了答案: doesjavascriptsupportmultipleinheritancelikeC++
这个问题已经在这里有了答案: > does Javascript support multiple inheritance like C++ 4个
我这里有个情况.我有两个模块(除了Javascript函数)定义如下:
模块1:
define(function(){
function A() {
var that = this;
that.data = 1
// ..
}
return A;
});
模组2:
define(function(){
function B() {
var that = this;
that.data = 1;
// ...
}
return B;
});
如何在两个模块之间继承两个模块?
解决方法:
1)在js中,一切都只是一个对象.
2)Javascript继承使用原型继承,而不是经典继承.
Javascript不支持多重继承.
要将它们都放在同一个类中,请尝试使用更好的mixin:
function extend(destination, source) {
for (var k in source) {
if (source.hasOwnProperty(k)) {
destination[k] = source[k];
}
}
return destination;
}
var C = Object.create(null);
extend(C.prototype,A);
extend(C.prototype,B);
mixins:
http://Javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-Javascript-mixins/
js中的继承:
http://howtonode.org/prototypical-inheritance
http://killdream.github.io/blog/2011/10/understanding-Javascript-oop/index.html