javascript - 检测何时将新属性添加到 Javascript 对象?

标签 javascript object properties

一个使用内置 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/

相关文章:

javascript - Angular 'undefined is not a function' 定义组件

javascript - 带有谷歌地图的 Backbone.js - 这个问题和听众

php - MSSQL 和 PHP : "An invalid parameter was passed to sqlsrv_query."

javascript - 调用对象内部的方法

javascript - 从 Node.js/JavaScript 中的 URL 返回 JSON 对象

javascript - 如何在 Chrome 中像在 Firefox 中一样在页面加载时初始触发 window.onBind

javascript - Angular SPA 未显示状态激活时的 API 数据

java - Spring Boot - application.properties 中的程序参数

iphone - UIButton.layer.cornerRadius 不存在?

python - 使用许多@properties 扩展 Python namedtuple?