我有这段代码
((function(){
var a=2;
var b=3;
var c=b+a;
alert(c);//alert 5
})());
alert(c); //no alert
我的问题是我可以将哪些方式输出到全球范围? 如果你能给所有的方式。 谢谢!
答案 0 :(得分:4)
var c = ((function(){
var a=2;
var b=3;
var c=b+a;
alert(c);//alert 5
return c;
})());
alert(c);
有很多方法可以做到这一点。您也可以在全局上隐式或显式地执行属性赋值:
window.c = b+a;
this.c = b+a;
c = b+a;
答案 1 :(得分:1)
这很简单! JavaScript中的所有全局变量实际上都是“窗口”对象的子属性,因此在全局范围添加中声明变量会使该变量成为窗口对象的属性。通过匿名函数,您可以将“c”或其他变量放入全局范围,只需执行以下操作即可...
window.c=b+a;
alert(c); // Same!
享受:)
答案 2 :(得分:0)
var c=0;
((function(){
var a=2;
var b=3;
c=b+a;
alert(c);//alert 5
})());
alert(c); //no alert
答案 3 :(得分:0)
(function (window) {
// this is local
var c = 'local';
// export to the global scope
window.c = c || '';
})(window); // Pass in a reference to the global window object
console.log(c) // => 'local'

您还可以传递一些其他对象,这不仅限于一个。 Here是一个非常好的解释,它是如何工作的