一个使用内置 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 方法是您所能做的一切。
关于javascript - 检测何时将新属性添加到 Javascript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2775384/