在 JavaScript 中使对象非全局

Making objects nonGlobal in javascript

本文关键字:全局 对象 JavaScript      更新时间:2023-09-26

我在 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 };
  ...
};