javascript 分配给变量的函数调用 returns 未定义

javascript function call assigned to variable returns undefined

我正在尝试 运行 测试环境 (Mocha) 中的一个函数,并且 运行 在将函数分配给变量(设置的测试up 做变量赋值)。我确定这已在其他地方得到解答,但我看到的每个示例都是异步函数,而事实并非如此。下面的代码returns对象,也是undefined。我怀疑是 "undefined" 输出阻止了我的代码在测试套件中 运行ning。 undefined 是从哪里来的,正确的输出是来自 return 语句还是 console.log 调用?

var addTo = function(obj){
  var object = {};
  for(var i = 0; i<arguments.length; i++){
    for(key in arguments[i]){
      if(arguments[i].hasOwnProperty(key)){
        object[key] = arguments[i][key];
      }
    }
  }
  return object;
}

var myObj = addTo({name: "John"}, {location: "space", age: 35});
console.log(myObj);

//returns:  
//Object {name: "John", location: "space", age: 35}
//undefined

我知道没有真正需要在这里创建一个空对象,因为我可以只添加到输入到函数中的第一个对象并在 i = 1 处启动 for 循环。只是尝试修复未定义的问题(这只是我认为的问题)。如果这是重复的,请 link 我找到正确的 post,因为我找不到它。

控制台计算表达式并打印出来。由于 console.log 没有 return 任何它显示未定义的东西。

  1. 你忘记了'key'变量前面的var。这使它成为全球性的。
  2. 我看到你使用了分号,所以在第 11 行的 } 后面加一个分号。