众所周知,array的reduce方法很有用,有下面的一段代码:
var obj=new Object();
["person","name"].reduce(function(obj,key){
console.info("obj。。");
console.info(obj);
console.info("key。。");
console.info(key);
console.info(obj[key])
return obj[key] = obj[key] || {};
},obj);
console.info("out..")
console.info(obj)
实际的结果是{"person":{"name":{}}}
请问是为什么?
因为
返回的是
obj[key]
而非obj
,每次操作都更深入了一层。