javascript - 调用外部名称的函数表达式

标签 javascript function-expression

我在 JavaScript 中有这样的函数表达式:

(function () {
    .
    //code here
    .
    .
}());

如何从其他地方调用它,例如从另一个函数调用它。

我已经尝试过这个。

var bind = (function () {
    //code here...//
}());

并在其他函数中调用它,例如

bind();

new bind();

var b = new bind();

但它不起作用。我该如何解决这个问题?

最佳答案

有了这个声明:

var bind = (function () {
    //code here...//

    return 42;
}());

bind 变量未分配给该函数。相反,它被赋予立即函数的返回值。所以你会得到bind = 42

定义具有立即函数的函数

您可能想在立即函数内创建一个函数(如果需要,可以组成一个闭包)并返回它以供以后使用。请参阅下面的示例:

var bind = (function() {
    function B(){
        // do something
        return 42;
    }
    return B;
}());

bind(); // <-----bind is a B(), so invoke it will return 42

这可能会从立即函数创建一个函数,并将其分配给 bind 变量,以便您稍后可以调用它。

关于javascript - 调用外部名称的函数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31365533/

相关文章:

javascript - 使用 Javascript 客户端计算文本区域中超链接的最佳方法?

javascript - 递归调用javascript函数

javascript - 为什么指定的 javascript 函数会持续存在?

javascript - 保存在 JavaScript 中的命名函数表达式中标识符的不可变绑定(bind)记录在哪里?

javascript - 在 Bootstrap 按钮上使用 JavaScript 模拟用户点击事件

javascript - 为什么只有第一个 window.open 工作?

Javascript 到 Actionscript 2.0

javascript - 无法读取未定义的属性 'concat'

javascript - 为什么要使用命名函数表达式?

javascript - 为什么我不能为命名函数表达式中同名的变量赋值?