我怎样才能让这个函数通过引用这个代码来传递?
var Class = function() {
var callback1;
var callback2;
function buildStuff(data, callback) {
element.onclick = function() {
doStuff(callback);
};
}
function doStuff(callback) {
callback();
}
return {
"setCallback1":function(fn) {
callback1 = fn;
},
"setCallback2":function(fn) {
callback2 = fn;
},
//may rebuild with different data, but same callback
"buildFoo":function(data) {
buildStuff(data, callback1);
},
//may rebuild with different data, but same callback
"buildBar":function(data) {
buildStuff(data, callback2);
}
};
}
function main() {
var object = Class();
object.setCallback1(function() {
//do stuff
});
object.setCallback2(function() {
//do something else
});
}
当您实际单击元素时,callback
是undefined
. 我希望它是我使用该setCallback
函数设置的匿名函数,因为用户单击发生在我调用该setCallback
函数之后。
谢谢!
编辑:感谢您的输入。我应该提到我需要能够动态设置callback
等于。所以,我不能只callback
从buildStuff
.
EDIT2:非常抱歉造成混乱;我意识到我的例子有点脱离背景,无法展示我在做什么。buildStuff
实际上是一个被重复调用的私有成员函数(使用模块模式)。根据正在构建的内容,它需要不同的回调。回调实际上是在类之外设置的(嗯,模块模式类),所以它必须是动态的。我已经更新了我的代码,再次抱歉这个不好的例子。