在另一个函数中调用函数 - 未捕获的错误

Calling function inside another function - uncaught error

我不知道 'parameter' 是否正确,但我试图在另一个函数中调用一个函数,但出现以下错误:

Uncaught ReferenceError: successMsg is not defined

我正在通过他们的 API 循环浏览 Trello 看板,看起来像这样

var sportSuccess = function(successMsg) {
  console.log("sport");
    loopTrelloCards();
};

Trello.get('/lists/BOARDID/cards', sportSuccess, error);

我的 loopTrelloCards 函数看起来像

function loopTrelloCards() {
  for(i = 0; i < successMsg.length; i++) {
    var name = successMsg[i].name;
    var desc = successMsg[i].desc;
    var due = successMsg[i].due;
    var date = new Date(due);
    var day = addZeroToDate(date.getDate());
    var month = addZeroToDate(date.getMonth() + 1);
    var year = String(date.getFullYear());
    var eventDateShort = year + month + day;
    if (today < eventDateShort) {
      var year = year.substr(2);
      var eventDate = day + '.' + month + '.' + year;
      console.log(name + '  ' + desc + '  ' + eventDate);
    }
  }
}

当我将代码放在 sportsSuccess 函数内的函数内时它可以工作,但是当我在 sportsSuccess 内调用 loopTrelloCards 时它会中断。

另外,你能告诉我我使用的术语(参数)是否正确吗?你会怎么称呼它?

Javascript 中的参数是函数作用域的局部变量。因此,由于您没有将 successMsg 作为参数传递,因此无法从内部函数访问。

您的选择是:

  • successMsg作为参数传递给内部函数。
  • successMsg 定义为全局变量(在函数之外)并在那里访问它。
  • 不使用内部函数,将逻辑放在主函数中。

引用 w3schools:

Function Arguments
Function arguments (parameters) work as local variables inside functions.