热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript中可能有多重继承吗?

这个问题已经在这里有了答案:                        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


推荐阅读
author-avatar
大大文人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有