我在 Firefox javascript 中遇到了一件非常奇怪的事情。我创建了一个对象,并使用字符串作为键。当我看到“watch”键是否有值时,如果其中没有“watch”键,它会通过返回 Object.watch 函数来使用react。我正在尝试使用以下方式访问键/值:
my_object["watch"]
我可以通过在创建对象时初始化该值来解决这个问题,但这对我来说似乎很俗气。有没有一种方法可以以编程方式解决这个问题。我可以写:
Object.keys(my_object).indexOf("watch")
判断 key 是否确实存在,但这确实很昂贵。我在 Chrome 中的脚本从大约 5-10 秒到一分钟或更长时间。
我简直不敢相信 Firefox 中没有一种高效的方法来处理这个问题。 Chrome 做了“正确的事”
最佳答案
它不返回 Object.watch
。 Object.<strong>prototype.</strong>watch
是 Firefox 特有的功能。
您可以使用obj.hasOwnProperty('watch')
测试您的对象是否具有该属性。
或者,根据对象的使用方式和来源,您可以在没有原型(prototype)的情况下初始化它:
var obj = Object.create(null);
那么您现有的测试 ( obj['watch']
) 将正常工作。
关于javascript 对象 火狐 watch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307326/