我将一段JavaScript代码存储在一个变量中,以后我希望像正常函数那样调用它,而不使用eveal()。 很像代码库可以执行的回调。 实现此目标的最佳方法是什么?
我尝试过
window[leaveCallback]();
和
eveal();
从变量中调用代码,但是它们都不适合我。 由于明显的安全原因,我不想使用eveal()
这是我的变量:
var callback = (function() {
alert('leave callback');
});
如何在此变量内执行代码?
我的目标是简单地调用存储为变量的代码,但是到目前为止,我还没有使它工作。
如果有人解释如何做,我将非常感激。谢谢。
答案 0 :(得分:1)
如果它是全局函数,只需全局调用
window.callback();
或简称
callback();
答案 1 :(得分:0)
在变量名后添加括号以调用它。 。 。 在您的示例中,输入:callback()
但是,如果定义的函数嵌套在另一个函数内部,则该函数将无法正常工作,因为它将位于闭包中,并且只能从封装该函数的函数内部进行调用。
答案 2 :(得分:0)
就像其他人提到的那样,如果您在全局范围内声明callback
或通过
window.callback = function() { alert('leave callback'); }
您可以将其称为callback()
或window.callback()
。
远景,但是,如果您要创建一个使用固定参数调用alert的函数,则可能需要执行以下操作:
const alertWith = (message) => () => alert(message);
window.leaveCallback = alertWith('leave callback');
此函数alertWith
是所谓的高阶函数。它返回另一个函数,其作用域包含固定绑定message -> 'leave callback'
查看代码片段,以了解如何使用此模式。
const alertWith = (message) => () => alert(message);
window.leaveCallback = alertWith('leave callback');
leaveCallback();