【发布时间】:2011-04-08 08:51:43
【问题描述】:
我为我们中间的 javascript 开发人员准备了一些东西。
我有以下课程:
function MyClass(){
this.__defineSetter__("array", function(val){
alert("setter called");
this._array = val;
});
this.__defineGetter__("array", function(){
alert("getter called");
return this._array;
});
this._array = new Array();
};
现在,当我执行时会发生什么
var a = new MyClass();
a.array[0] = "MyString";
alert(a.array[0]);
getter 被调用了两次(这很好),但是 setter 永远不会被执行,因为实际的数组引用没有改变,只有内容(我猜是预期的行为)。 但是,当修改数组内容时,我还需要“通知”。因此,调用
a.array[0] = "MyString";
还应该引起 setter-call(或类似的东西,重要的是在数组内容发生更改时收到通知。
有人喜欢这个吗?如何实现?
【问题讨论】:
标签: javascript arrays setter getter