我在javascript中有函数表达式,如下所示:
(function () {
.
//code here
.
.
}());
如何从其他地方调用它,比如从另一个函数调用它。
我试过这个。
var bind = (function () {
//code here...//
}());
并在其他功能中调用它,如
bind();
或
new bind();
或
var b = new bind();
但它不起作用。我该如何解决这个问题?
答案 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
变量,以便稍后调用它。