我有一个对象,用作哈希表来存储 JavaScript 中的键值对:
Storage["key"] = "value".
我发现我们可以使用defineSetter为每个键设置setter,但是,我们需要事先知道所有键的名称。每当以这种方式设置值时,是否有办法执行某些操作?
例如,在执行以下操作时:
Storage["key"] = "value";
我希望它由自定义方法处理,例如:
customMethod : function(aKey, aValue) {
//do something with these two params
// inform somebody else about this.
}
想法/建议?
最佳答案
不,目前没有办法捕获所有属性分配。 Firefox 4 引入了实验性 JavaScript Proxy API这将允许您执行此操作(让代理将所有调用转发到内部对象,但在设置属性时也会触发一些额外的操作),但这里可能有点矫枉过正 - 即使这个 API 是稳定的并且在其他浏览器中实现了。
关于javascript - 使用数组表示法了解何时将属性设置为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6552271/