在javascript中使对象非全局
我有一个JavaScript函数,看起来像这样:在javascript中使对象非全局,javascript,object,scope,Javascript,Object,Scope,我有一个JavaScript函数,看起来像这样: foo=function(listenerObject) { a={count:0}; foo2=function(){ //does stuff with a } //register listenerObject to callback the function foo2 } 问题是我最终使用此函数注册了多个侦听器,但它们最终都共享同一个“a”对象。有没有一种方法可以防止函数中的对象声明潜入全局范围。 换句话说,我不
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 foo = function(listenerObject) {
var a = { count: 0 };
...
};
使用。实际上,您应该使用var
声明所有变量,否则,您会发现,一堆全局变量相互叠加
例如:
var foo = function(listenerObject) {
var a = { count: 0 };
...
};