【问题标题】:Define global function within anonymous self-executing function?在匿名自执行函数中定义全局函数?
【发布时间】:2014-09-25 04:59:28
【问题描述】:
(function(){
var someValue = 5;
function myFunction(input) = {
return someValue * input;
};
})();
我有一个自动执行的函数,它包含很多东西,其中我想让函数成为全局的。我通常只会在全局范围内声明它,但它需要能够引用仅对自执行函数本地的变量。
在不完全摆脱自执行函数的情况下使函数可全局访问的最佳方法是什么(从而在全局空间中乱扔变量)?
【问题讨论】:
标签:
javascript
self-executing-function
【解决方案1】:
您可以将函数添加到全局window 对象中。
(function(){
var someValue = 5;
window.myFunction = function (input) {
return someValue * input;
};
})();
立即函数执行后,可以调用myFunction()。
【解决方案2】:
或者,您可以执行类似的操作,其结果与 ntalbs 建议的结果基本相同。
var myFunction;
(function(){
var someValue = 5;
myFunction = function (input) {
return someValue * input;
};
})();
console.log( myFunction( 4 ), window.myFunction ); // output: 20, function(input){return someValue * input}