我试图找出如何在JavaScript中创建一个对象,该对象将触发创建和更改任意键/值的事件。这是一些伪代码:
var User = function () {
var user = {};
function keyAdded() { /* trigger an event */ }
function keyChanged() { /* trigger an event */ }
return user;
},
u = new User();
u.test = "testing"; // I want this to trigger an event (keyAdded)
u.test = "more testing"; // I want this to trigger another event (keyChanged)
我被困住了。有什么想法吗?
答案 0 :(得分:2)
答案 1 :(得分:2)
function User() {
this.assign = function(key, value) {
if ( !this.hasOwnProperty(key) ) {
this[key] = value;
alert("key added");
} else {
this[key] = value;
alert("key changed");
}
};
return this;
}
u = new User();
u.assign("test", "testing"); // will alert "key added"
u.assign("test", "more testing"); // will alert "key changed"
答案 2 :(得分:1)
您应该在User上定义一个getter和setter。 这样,访问该对象的属性将触发这些函数。