4
存储(localStorage,sessionStorage)允许使用任意属性。例如。你可以做的Javascript中的动态属性getters/setters?
localStorage.foo = 'bar';
代替
localStorage.setItem('foo', 'bar');
我自己的JavaScript对象可以有相同的行为?当试图设置属性时,我想执行一些代码。
注意:我明显知道我可以创建setters,但是这对名字我不知道的属性是无效的。
注意2:一个位spec的检查后,我发现它并没有真正保证,这将工作,除非该键已经被设定setItem():
存储对象上支持的命名属性的名称是当前存在于与对象关联的列表中的每个键/值对的键名称
我也可以自己实现这种行为,只要第一组通过一个方法,通过动态确定获得者/设定者。
还有新的ECMAScript 5 getters和setters,目前正在进入新的浏览器。 – 2010-08-16 11:08:07