我正在尝试向dojo类中的函数添加一个动作。
打开页面时加载的基类示例。
dojo.provide("nusw.winMgr");
dojo.declare("nusw.winMgr", null, {
constructor: function......
open: function(parm){
alert("This is the default action of the class");
}
});
我想改变open函数的行为,这样当它被调用时,无论何时调用它都会调用另一个函数+默认的映射函数。
对于这个例子,我想将以下函数添加到默认的open函数中。
function alert2(){
alert("This is the updated open function class");
}
我期待结果
警告消息:这是更新的开放函数类
警告消息:这是类
的默认操作这些函数比这里给出的例子更复杂,但这正是我想要弄清楚的。
我希望能够在用户单击按钮时调用此脚本来更新默认的类函数,这样我就可以将逻辑放在javascript函数中。
我是dojo的新手
答案 0 :(得分:0)
事实上,在dojo
中的Javascript
,您可以随时将动态回调函数附加到事件,因此这里会将动态回调函数附加到窗口小部件的open
事件中。
在此函数中,您可以稍后编写要编写的任何新逻辑,甚至可以调用另一个function
,然后只更新第二个函数。
这就是你可以做的例子:
var secondFunction = function secondFunction() {
alert("This is another logic added");
}
var openCallback = function openCallback(param) {
alert("This is the default action of the class");
secondFunction();
}
//Then in your widget
dojo.declare("nusw.winMgr", null, {
constructor: function......
open: openCallback()
});
答案 1 :(得分:0)
尝试dojo/aspekt来完成此任务。它可能看起来像:
require(["dojo/aspect"], function(aspect){
aspect.after(baseClassInstance, "open", function(){
alert("This is the updated open function class");
});
});
或
require(["dojo/aspect"], function(aspect){
aspect.before(baseClassInstance, "open", function(){
alert("This is the updated open function class");
});
});