我在 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/