我不知道'参数'是否是正确的术语,但我试图在另一个函数中调用一个函数,我收到以下错误:
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时,它会中断。
另外,如果我使用的术语(参数)是正确的,你可以告诉我吗?你会怎么称呼这个?
答案 0 :(得分:1)
Javascript中的参数是函数“范围”的局部变量。因此,由于您没有将successMsg
作为参数传递,因此无法从内部函数访问。
您的选择是:
successMsg
作为参数传递给内部函数。successMsg
定义为全局变量(在函数之外)并在那里访问它。引用w3schools:
Function Arguments
Function arguments (parameters) work as local variables inside functions.