如何将匿名函数内的变量导出到JavaScript中的全局作用域?

时间:2012-11-08 07:11:56

标签: javascript anonymous-function

我有这段代码

((function(){
var a=2;
var b=3;
var c=b+a;
alert(c);//alert 5
})());
alert(c); //no alert

我的问题是我可以将哪些方式输出到全球范围? 如果你能给所有的方式。 谢谢!

4 个答案:

答案 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是一个非常好的解释,它是如何工作的