分配给变量的javascript函数调用返回未定义的
我试图在测试环境(Mocha)中运行一个函数,但在将函数分配给变量(设置的测试执行变量分配)时调用该函数时遇到问题。我相信这已经在其他地方得到了回答,但我看到的每个示例都是异步函数,而事实并非如此。下面的代码返回该对象,但也未定义。我怀疑是“未定义”的输出阻止了我的代码在测试套件中运行。未定义的输出来自哪里,正确的输出来自return语句还是console.log调用分配给变量的javascript函数调用返回未定义的,javascript,testing,undefined,mocha.js,Javascript,Testing,Undefined,Mocha.js,我试图在测试环境(Mocha)中运行一个函数,但在将函数分配给变量(设置的测试执行变量分配)时调用该函数时遇到问题。我相信这已经在其他地方得到了回答,但我看到的每个示例都是异步函数,而事实并非如此。下面的代码返回该对象,但也未定义。我怀疑是“未定义”的输出阻止了我的代码在测试套件中运行。未定义的输出来自哪里,正确的输出来自return语句还是console.log调用 var addTo = function(obj){ var object = {}; for(var i = 0; i
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
var addTo=函数(obj){
var对象={};
对于(var i=0;i,控制台计算表达式并打印该表达式。由于console.log不返回任何未定义的内容,因此它会显示未定义的内容
您忘记了“key”变量前面的var。这使它成为全局变量
我看到您使用分号,所以在第11行的}之后添加一个分号
你确定undefined
不仅仅是测试环境中console.log()
函数调用的返回吗?我在Chrome控制台上运行时看到了未定义的,因为我从测试环境得到的只是一个rex“X”表示函数未通过测试。我不确定您是如何运行此函数的,但如果键入console.log()
在控制台中,您将返回未定义的
,因为这是函数返回的结果,我想这就是您看到的,但我不确定?您用“key”变量前面的var击中了要害。非常感谢!