如何在闭包中声明函数全局?这适用于谷歌应用脚本,因此没有窗口。
有关于如何在谷歌应用程序脚本中使用闭包的文档,但该示例声明了一个对象而不是一个函数。
http://code.google.com/googleapps/appsscript/articles/appengine.html
var JSON = JSON || {};
// foo = function(){}
(function ()
{
...
foo = function (a, b)
{
...
}
foo.prototype =
{
...
}
// window.foo = foo; // Not Possible
}());
答案 0 :(得分:0)
这应该有效:
var globalFoo;
(function ()
{
...
foo = function (a, b)
{
...
}
foo.prototype =
{
...
}
globalFoo = foo;
// window.foo = foo; // Not Possible
}());
我已经在浏览器上运行的常规html中进行了测试,并且运行正常。这是一个例子:
var globalFoo;
console.log("O1")
console.log(globalFoo);
(function(){
console.log("I1")
console.log(globalFoo);
var x = 13;
var foo = function() {
console.log('foo caled ' + x);
x++;
return true;
}
foo();
globalFoo = foo;
console.log("I2")
console.log(globalFoo);
})();
console.log("O1")
console.log(globalFoo);
console.log(globalFoo());
萤火虫的输出是:
O1
undefined
I1
undefined
foo caled 13
I2
function()
O1
function()
foo caled 14
true