2

我有一个 Javascript 对象:

var obj={...};

  • 每当添加/更改新属性时,如何执行函数:

    例如:obj["newItem"]=3;

  • 数组有什么办法吗?(原型中的例外覆盖push

  • 有没有办法将不同的对象分配给同一个变量?

    例子 :

    var obj={...};
        obj={...}; //redifine
    
4

1 回答 1

0

有一个名为Object.observe的提议正是为此目的。它类似于 Firefox 中的Object.watch

还有为您提供更多灵活性的代理对象。

但是,它们都没有广泛实施——例如,如果您正在开发 Firefox 插件,您可以使用代理。

还请注意,对于您问题的第一点来说,这是正确的,但不是最后一点。基本上,如果你正在做:

var obj = {a: 1};

obj = {b: 1};

你没有“重新定义”一个对象,对象本身没有被触及,你只是将不同的对象分配给同一个变量。如果要监视更改,该变量需要是对象的属性——例如,在浏览器中,任何全局变量都会自动成为全局对象的属性,在这种情况下window,您可以这样做。

于 2013-04-07T11:00:48.443 回答