javascript - 如何监控 Javascript 对象的新属性设置

标签 javascript object properties monitoring

每当在 Javascript 对象上设置 属性时,我如何获得回调...?
IE。我不知道将要设置哪些属性,但希望对所有已设置的属性 进行回调。

我想要的是

var obj = {};
obj.a = "something"; // triggers callback function

function callback(obj,key,val) {
    console.log(key + " was set to " + val + " on ", obj);
}

这可能吗?

最佳答案

您可以使用新的 defineProperty :

function onChange(propertyName, newValue){
...
}

var o = {};

Object.defineProperty(o, "propertyName", { 
 get: function() {return pValue; },
 set: function(newValue) { onChange("propertyName",newValue); pValue = newValue;}});

但是要看你需要支持的浏览器版本。

编辑:在 Jsfiddle 上添加了片段,适用于 IE10。 http://jsfiddle.net/r2wbR/

关于javascript - 如何监控 Javascript 对象的新属性设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15161508/

相关文章:

javascript - 如何填充元素的方法?

javascript - 是否有 JavaScript 可以替代大于和小于?

java - 从另一个类将对象添加到数组列表

c++类默认属性

c# - 接口(interface)属性的内部修饰符

c# - 公共(public)属性(property)定义

javascript - Discord.js 如何运行函数然后打印答案

javascript - 如何按整数列对 json 对象进行排序,例如 "3"、 "2"、 "5"

调用 e.preventDefault() 时,javascript 错误 "e"未定义

c++ - C++ 中的快速函数对象?