3

创建新对象时,您可以引用对象类的任何成员。例如:

var obj = new Object();
obj["watch"];  //returns the watch() function of Object

有没有办法覆盖这个默认行为,以便 obj["watch"] 返回 undefined ?请注意,我只在 Firefox 中看到这种行为

4

1 回答 1

4

从 EcmaScript 5.1 开始,您可以通过以下方式生成没有原型(也没有原型Object.protoype)的对象:

var empty = Object.create(null);
empty.watch; // undefined

您将需要本机功能,使用的简单 polyfillnew无法做到这一点。另请参阅es5-shim 的此文档部分

请注意,我只在 Firefox 中看到这种行为

那是因为watch是一个非标准的 FF 扩展。不过,您也应该能够在其他浏览器中获得标准属性。

于 2013-01-15T21:16:18.777 回答