如何防止传入javascript函数的回调被触发
How to prevent a callback from firing that is fed into a javascript function
我有两个函数。
function function_a(callback) {
if (some_condition===true) {
callback // fire the callback
}
}
function function_b() {
... do some action
}
我的脚本调用:
function_a(function_b());
也就是说,function_a()
中的callback
将是function_b()
的执行。
然而,我并不总是希望function_b()
被解雇。我只希望它在some_condition===true
时激发(如在function_a()
主体中)。
现在的问题是,每当我将回调函数输入到另一个函数的参数中时,它都会自动触发它,而无需运行函数的脚本来确定是否需要触发回调。
是我做错了什么,还是用了一些不同的方法?
谢谢!
您需要调用function_a(function_b);
。
现在您没有传递function_b
本身,而是立即调用它并传递它的返回值。
您的function_a
应该执行callback()
而不是callback
。
括号会导致函数"execute"或"fire"。正如Comptonburger所说,去掉"脚本调用"的括号,但在回调中添加括号。
function function_a(callback) {
if (some_condition === true) {
callback(); // parentheses do the "firing"
}
}
function function_b() {
// ... do some action
}
// Script calls:
// No parentheses on function_b because we
// don't want to "fire it" right here and now.
function_a( function_b );
您还可以将function_b()
作为字符串传递,并在条件传递后对其求值。
function function_a(callback) {
if (some_condition===true) {
eval(callback); // fire the callback
}
}
function function_b() {
... do some action
}
function_a("function_b()");
相关文章:
- JavaScript回调函数
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- 如何正确地将参数传递给RequireJS回调函数
- 回调函数在python代码中离线
- 从AJAX回调函数中分离数据
- 赋值后的回调函数
- 如何在javascript回调函数中返回多个变量
- 函数表达式,返回回调函数
- 等待回调函数执行
- JavaScript回调函数和Google Feed API
- 如何从ajax成功回调函数中读取javascript变量
- 正在保存JavaScript内部回调函数中的值
- 有没有什么方法可以停止Jquery中的animate(也可以停止完整的回调函数)
- 如何在javascript中添加带有回调函数的按钮点击事件作为window.conf
- 在Golang回调函数中启用CORS
- 在初始函数完成之前调用回调函数
- jQuery Mobile:如何在$.Mobile.changePage之前运行回调函数
- 即使使用回调函数也无法返回值
- 为什么prototypjs观察到回调函数有绑定