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

时间:2015-07-12 07:37:28

标签: javascript function-expression

我在javascript中有函​​数表达式,如下所示:

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

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

我试过这个。

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

并在其他功能中调用它,如

bind();

new bind();

var b = new bind();

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

1 个答案:

答案 0 :(得分:0)

这句话:

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变量,以便稍后调用它。