0

你好

我花了大约 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);
4

0 回答 0