Javascript:一旦“类/对象”被“扩展”,是否可以使用不同的基类“类/对象”重新扩展它?

时间:2011-07-21 14:51:32

标签: javascript oop prototype-programming

我正在尝试向现有JS框架(Wireit)中的类树添加新属性。有关详情,请参阅此处:Javascript: Is it possible to inject new functions into a base 'class/object' that will be available in all sub-'classes/objects'?

我最初的方法是重新定义基类,但事实证明这很棘手。

我现在想知道我是否可以对基类进行子类化,添加我的扩展,然后重新子类化扩展基类的类以使用我的基类。复杂?我会做一个简单的图表来表明我的意思....

当前继承

Container --> ImageContainer
Container --> FormContainer

新继承

Container --> MyContainer --> ImageContainer
Container --> MyContainer --> FormContainer

这可能吗?

1 个答案:

答案 0 :(得分:0)

只需添加guid作为方法即可完成。

Container.prototype.GUID = function() {
  return GUIDSystem.getGUID(this);
}

编写您自己的GUIDSystem以返回每个对象的唯一GUID。

提示:使用WeakMap,WeakMap填充程序和地图中的GUID的延迟填充。