删除属性不起作用时的Object.watch

时间:2014-07-23 15:49:25

标签: javascript

我有问题。 我的代码:

var o = { p: 1 };

o.watch("p", function (id, oldval, newval) {
    console.log( "o." + id + " changed from " + oldval + " to " + newval );
    return newval;
});

o.p = 2;

o.p = 3;

delete o.p; 

o.p = 4; /* dont works */

o.p = 14;/* dont works */

o.unwatch('p');
o.p = 5; 

我有问题。当我删除属性Object.watch不工作!有没有办法让它工作呢?

另一个例子:

var o = { p: 1 };

o.watch("root", function (id, oldval, newval) {
    console.log( "o." + id + " changed from " + oldval + " to " + newval );
    return newval;
});

delete o.root;
o.root = 2;  //dont works 

可是:

var o = { p: 1 };

o.watch("root", function (id, oldval, newval) {
    console.log( "o." + id + " changed from " + oldval + " to " + newval );
    return newval;
});

//delete o.root;
o.root = 2; //o.root changed from undefined to 2 

非常感谢...

0 个答案:

没有答案