gpt4 book ai didi

javascript - 具有不同需求的 Dojo 子类

转载 作者:行者123 更新时间:2023-12-02 17:15:42 26 4
gpt4 key购买 nike

如果我有一个像下面这样的类,是否可以创建一个具有相同功能但会覆盖“要求”之一的子类?

我尝试在下面的示例中使用我自己的/registry 版本。谢谢

define([
"dojo/_base/declare",
"dojo/query",
"../registry",
], function(declare, query, registry){

return declare("dijit.form._SearchMixin" {

// Original Base code

最佳答案

如果你的意思是这样的:

您有一些使用 modulA 的类(class)

define(["modulA"], function(modul){
return declare("classA", [], {
doSomething: function() {
modul.doSomething()
}
})
});

然后你在classA的基础上声明另一个类,它应该使用modulB:

define(["classA", "modulB"], function(classA, modulB) {
// do something magical so that doSomething will use modulB
return declare("classB", [classA]) {}
})

如果不覆盖所有使用 modulA 的函数,这是不可能的。如果这是您的代码,您可以使用与模块的动态绑定(bind)来启用这种多态性的方式编写它:

define([], function(){
return declare("classA", [], {
// dynamic binding, it can be overwritten
modulName: "modulA",
doSomething: function() {
require([this.modulName, function(modul) {
// you must take into account, you're in async code now
modul.doSomething()
}
}
})
});

关于javascript - 具有不同需求的 Dojo 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24452810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com