在 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 };
...
};
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- javascript无法重新定义函数内部的全局对象
- Javascript,从静态函数中打印全局对象
- 为什么“this”指的是全局对象
- Do let语句在全局对象上创建属性
- underscore.js,名为“”的全局对象;出口;和livefyre javascript API-集成冲突
- 为什么“this”指的是对象“obj”而不是全局对象
- 从函数调用全局对象的方法
- 谷歌分析的全局对象
- AngularJS:避免使用“angular”全局对象
- Javascript Web Worker 修改全局对象
- 想要在回调中更新对象,给出正确的日志,但全局对象未更新
- 让函数中的接收器默认为全局对象背后的基本原理是什么?
- 蜘蛛猴:如何删除全局对象
- 为什么函数在全局对象中不可用
- 访问请求会在全局对象中生成
- 全局对象问题
- React Native 中全局对象的模式
- Expressjs - 全局对象
- 是否可以在 Javascript 中更改或删除全局对象的属性