簡體   English   中英

分配給變量的javascript函數調用返回未定義

[英]javascript function call assigned to variable returns undefined

我試圖在測試環境(Mocha)中運行一個函數,並且在將我的函數分配給變量時遇到問題(設置的測試會執行變量分配)。 我確定這已經在其他地方得到了回答,但是我看到的每個示例都是一個異步函數,而事實並非如此。 以下代碼返回對象,但也未定義。 我懷疑是“未定義”的輸出阻止了我的代碼在測試套件中運行。 該未定義來自哪里,正確的輸出來自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循環。只需嘗試解決未定義的問題(即只是我認為的問題)。 如果這是重復的郵件,請將我鏈接到正確的帖子,因為我找不到它。

控制台將評估表達式並打印出來。 由於console.log不返回任何內容,因此顯示為undefined。

  1. 您忘記了'key'變量前面的var。 這使其成為全球性的。
  2. 我看到您使用分號,因此在第11行的}之后添加一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM