我有这个代码
((function(){
var a=2;
var b=3;
var c=b+a;
alert(c);//alert 5
})());
alert(c); //no alert
我的问题是我可以通过哪些方式将 c 导出到全局范围?如果你能给出所有的方法。谢谢!
我有这个代码
((function(){
var a=2;
var b=3;
var c=b+a;
alert(c);//alert 5
})());
alert(c); //no alert
我的问题是我可以通过哪些方式将 c 导出到全局范围?如果你能给出所有的方法。谢谢!
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;
这很简单!JavaScript 中的所有全局变量实际上都是“窗口”对象的子属性,因此在全局范围内声明一个变量会使该变量成为窗口对象的属性。从您的匿名函数中,您只需执行以下操作即可将“c”或其他变量放入全局范围...
window.c=b+a;
alert(c); // Same!
享受 :)
var c=0;
((function(){
var a=2;
var b=3;
c=b+a;
alert(c);//alert 5
})());
alert(c); //no alert
(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'
您还可以传入一些其他对象,并且不仅限于一个。这是一个很好的解释它是如何工作的