知道何时使用数组表示法将属性设置为对象

Know when a property has been set to an object using array notation

本文关键字:属性 设置 对象 表示 何时使 数组      更新时间:2023-09-26

我有一个对象,它被用作哈希表,用于在javascript:中存储键值对

Storage["key"] = "value".

我发现我们可以使用defineSeter为每个键设置setter,但是,我们需要事先知道所有的键名。当一个值以这种方式设置时,有没有一种方法可以做某事?

例如,在执行以下操作时:

Storage["key"] = "value";

我想用一种自定义的方法来处理它,比如:

customMethod : function(aKey, aValue) {
  //do something with these two params
  // inform somebody else about this.
}

想法/建议?

不,目前还没有办法捕获所有属性分配。Firefox4引入了一个实验性的JavaScript代理API,它可以让你做到这一点(让一个代理转发所有对内部对象的调用,但在设置属性时也会触发一些额外的操作(,但它在这里可能是杀鸡用牛刀-即使这个API是稳定的,并在其他浏览器中实现。

您可以覆盖对象的__defineSetter__以获得更精细的控制。注意:不会在所有浏览器中工作!

有关更多详细信息,请参阅本文:John Resig:JavaScript Getters and Setters