在另一个类中实例化时的dojo模块继承

在另一个类中实例化时的dojo模块继承,dojo,ibm-content-navigator,Dojo,Ibm Content Navigator,鉴于以下情况: 父项有一个ParentsModule: 子对象扩展父对象。他有个孩子 ParentsModule做自己的事情。 ChildsModule扩展了ParentsModule。 不编辑“父项”,可以a.doThis(arg)调用ChildsModule.doThis() 我可以重写父函数中实例化的模块吗 someFunction有很多我想使用的代码。Parent(和ParentsModule)是提供给我的一个类,我是Child(和ChildsModule)的作者。首先重写正在加载的Pa

鉴于以下情况:

父项有一个ParentsModule: 子对象扩展父对象。他有个孩子 ParentsModule做自己的事情。 ChildsModule扩展了ParentsModule。 不编辑“父项”,可以
a.doThis(arg)调用
ChildsModule.doThis()

我可以重写父函数中实例化的模块吗


someFunction有很多我想使用的代码。Parent(和ParentsModule)是提供给我的一个类,我是Child(和ChildsModule)的作者。

首先重写正在加载的ParentsModule,然后改为加载ChildsModule如何?当然,这将适用于所有试图实例化ParentsModule的代码-不确定这是否是一个问题

var-dojoConfig={path:{'orig_-code/ParentsModule':'new_-code/ChildsModule'}


如果你不熟悉dojoConfig;在加载dojo之前,需要将其放置在某个位置。如果您已经有一个,只需将paths对象添加到其中。

hmmm不确定是否可以在加载dojo之前插入。我正在为包含ParentsModule(和Parent)的产品开发一个插件。所以我相信我的插件js会在加载dojo之后加载。
define([ParentsModule,...], 
function(ParentsModule,...) {
    return declare("Parent", ..., {

        someFunction: function(arg) {
            var a = new ParentsModule();
            a.doThis(arg);
        },
        ...
    )};
});     
define([ChildsModule,Parent,...],
function(ChildsModule,Parent,... ) {
    return declare("Child", [Parent], {

        someFunction: function(arg) {
            this.inherited(arguments);
        },
        ...
    )};
});
define([ParentsModule,...],
function(ParentsModule,... ) {
    return declare("ChildsModule", [ParentsModule], {
        doThis: function(arg) {
            //bunch of stuff happens here.
        },
    ...
    )};
});
define([...],
function(...) {
    return declare("ParentsModule",..., {
        doThis: function(arg) {
            return;
        },
    ...
    )};
});