繁体   English   中英

在javascript中使对象变为非全局对象

[英]Making objects nonGlobal in javascript

我有一个JavaScript函数,看起来像这样:

foo=function(listenerObject)
{
  a={count:0};
  foo2=function(){
    //does stuff with a
  }
  //register listenerObject to callback the function foo2
}

问题是我最终使用此功能注册了多个侦听器,但是它们最终都共享相同的“ a”对象。 有没有一种方法可以防止函数内部的对象声明爬入全局范围。 换句话说,我想阻止能够做这样的事情

fun=function(){o={count:0}}
o.count++//o is now in the global scope

使用var 确实,您应该使用var声明所有变量,否则,您会发现,一堆全局变量互相作用。

例:

var foo = function(listenerObject) {
  var a = { count: 0 };
  ...
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM