Jam*_*hon 7 javascript object autovivification
无论如何,无论是本地还是通过库,在Javascript对象上使用自动生成?
IE,假设foo是一个没有属性的对象,能够做foo.bar.baz = 5而不是需要foo.bar = {}; foo.bar.baz = 5.
您无法使用所需的语法完全执行此操作.但像往常一样,在JS中你可以编写自己的函数:
function set (obj,keys,val) {
for (var i=0;i<keys.length;i++) {
var k = keys[i];
if (typeof obj[k] == 'undefined') {
obj[k] = {};
}
obj = obj[k];
}
obj = val;
}
Run Code Online (Sandbox Code Playgroud)
所以现在你可以这样做:
// as per you example:
set(foo,['bar','baz'],5);
Run Code Online (Sandbox Code Playgroud)
而不必担心如果bar或baz定义.如果你不喜欢[..]函数调用,你总是可以迭代arguments对象.
| 归档时间: |
|
| 查看次数: |
757 次 |
| 最近记录: |