我在Firefox javascript中遇到了一个非常奇怪的事情。我有一个我创建的对象,我正在使用字符串作为键。当我到达我所看到的点时,如果我对键'watch'有价值,那么如果那里没有'watch'键那么它就会返回Object.watch函数。我正试图通过以下方式访问键/值:
my_object["watch"]
我可以通过在创建Object时初始化该值来解决这个问题,但这对我来说似乎很苛刻。有没有办法以编程方式解决这个问题。我可以写:
Object.keys(my_object).indexOf("watch")
如果钥匙确实在那里做出决定,那真的很贵。我在Chrome中的脚本大约需要5-10秒到一分钟或更长时间。
我无法相信firefox中没有一种高效的方法可以解决这个问题。 Chrome做了“正确的事”
答案 0 :(得分:2)
不返回Object.watch
。 Object.prototype.watch
是Firefox特有的功能。
您可以使用obj.hasOwnProperty('watch')
来测试您的对象是否具有该属性。
或者,根据对象的使用方式和来源,您可以在没有原型的情况下对其进行初始化:
var obj = Object.create(null);
然后您现有的测试(obj['watch']
)将正常工作。