【发布时间】:2011-03-20 18:51:47
【问题描述】:
我开发的客户端 JavaScript 库在某些区域使用对象作为哈希值。它通过使用属性名称作为键的 for...in 循环遍历从 Json 数据解析的对象。例如...(伪代码)
var conversations = {'sha1-string':{name:'foo',messages:[]}}
for(var id in conversations){
console.log(id);
console.log(conversations[id].name);
}
不幸的是 MooTools(和 Prototype 等)将方法添加到全局命名空间,所以我的 for...in 循环现在遍历 MooTools 的添加(例如限制、回合、时间、每个),在应用逻辑时会导致错误对他们来说,就好像这是预期的数据。
因为它是一个库,我不得不期待它会与 MooTools、Prototype 等一起使用。有没有简单的方法解决这个问题?我目前的解决方案只是将对象传递给一个方法,该方法去除 MooTools 特定条目并返回干净的对象,但这也意味着检查 Prototype 和所有类似库添加的内容,并且似乎是一种倒退的做事方式.
我的另一个解决方案是停止依赖属性名称作为键,并在循环中执行验证以确保我正在查看我想要的数据。不过,在我进行重写之前,我想知道是否有人有更好/现有的解决方案?
谢谢:)
【问题讨论】:
标签: javascript mootools prototypejs