你好
我花了大约 4 个小时调试奇怪的问题
我的工作流程是
var config = {
someKey : [
'valueA','valueB'
]
};
function anAction()
{
// some code and loops like a maze, then
async.each(config.someKey,function(configKey)
{
// another maze+asynchronous , and because off my bad luck i use configKey inside if statement and change it
});
}
所以在循环 async.each 之后改变我的配置值,比如它是通过引用调用的
所以我的问题是javascript中的默认行为是使用引用调用还是异步行为?
编辑
它与异步无关
请测试这个例子
var crazy = [
{key:'value'}
];
// safe code no change
crazy.forEach(function(item)
{
item = 'new value';
});
console.log(crazy);
// bad code do change
crazy.forEach(function(item)
{
item.key = 'new value';
});
console.log(crazy);