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 任何它显示未定义的东西。
- 你忘记了'key'变量前面的var。这使它成为全球性的。
- 我看到你使用了分号,所以在第 11 行的 } 后面加一个分号。
我正在尝试 运行 测试环境 (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 任何它显示未定义的东西。
- 你忘记了'key'变量前面的var。这使它成为全球性的。
- 我看到你使用了分号,所以在第 11 行的 } 后面加一个分号。