一个使用内置javascript对象的简单示例:
navigator.my_new_property =“某些值”;//我们能否检测到添加了此新属性?

我不想不断地轮询对象以检查新属性。
是否有某种类型的对象高级 setter ,而不是明确说明要监视的属性?

同样,我不想检测属性值是否已更改,而是要何时添加新属性。

有想法吗?
谢谢

最佳答案

不。确定何时将属性写入以下内容的现有方法:

  • 使用defineProperty(obj, name, fn)定义的ECMAScript 5 setter ;
  • 使用__defineSetter__(name, fn)定义的旧式JavaScript setter ;
  • 旧版Netscape/Mozilla watch(name, fn);

  • 都是基于名称的,因此无法捕获使用先前未知名称编写的新属性。无论如何,navigator可能是“宿主对象”,因此您不能依赖任何可用的常规JavaScript Object接口(interface)。

    轮询或提供回调的显式setter方法几乎是您所能做的。

    类似的情况:Getter/setter on javascript array?

    关于javascript - 检测何时将新属性添加到Javascript对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2775384/

    10-16 14:15
    查看更多