JavaScript:如何调用存储在变量中的函数?

时间:2018-12-27 14:44:32

标签: javascript variables

我将一段JavaScript代码存储在一个变量中,以后我希望像正常函数那样调用它,而不使用eveal()。 很像代码库可以执行的回调。 实现此目标的最佳方法是什么?

我尝试过

window[leaveCallback]();

eveal();

从变量中调用代码,但是它们都不适合我。 由于明显的安全原因,我不想使用eveal()

这是我的变量:

var callback = (function() {
    alert('leave callback');
});

如何在此变量内执行代码?

我的目标是简单地调用存储为变量的代码,但是到目前为止,我还没有使它工作。

如果有人解释如何做,我将非常感激。谢谢。

3 个答案:

答案 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();