我有以下JavaScript代码,无法将其传递给“内部函数”。我无法在“ confirm”内部嵌套的函数中检索到u1和p1值,而无法在“外部函数”控制台中检索。控制台将内部功能的u1和p1打印为未定义。该代码段如下所示:function alertFunc(vara, varb) { console.log("Timeout!"); var u1 = vara; var p1 = varb; console.log("Outer Function: " + u1 + " , " + p1); confirm(u1, p1); function confirm(u1, p1) { var confirmPopup = $ionicPopup.confirm({ title: 'Network Time-Out', template: 'Check your network connection and try again.', okText: 'Retry' }); confirmPopup.then(function(res, u1, p1) { if (res) { $scope.loading = true; console.log("Inner Function: " + u1 + " , " + p1); loginz(u1, p1); } else { console.log('Cancelled'); } }); }}我确定我传入了变量,可能是什么问题。可能是在“ confirmPopup”期间,我没有传入值吗?非常感谢任何指示! 最佳答案 我确定我传入了变量,可能是问题所在。这完全取决于confirmPopup函数用作其分辨率值的原因,但是很有可能没有,您还没有传入它们。您也不需要:只需将它们从then回调函数的参数列表中删除,您将能够访问它们,因为该回调是创建它的上下文的闭包,它具有u1和已经。例如。:function alertFunc(vara, varb) { console.log("Timeout!"); var u1 = vara; var p1 = varb; console.log("Outer Function: " + u1 + " , " + p1); confirm(u1, p1); function confirm(u1, p1) { var confirmPopup = $ionicPopup.confirm({ title: 'Network Time-Out', template: 'Check your network connection and try again.', okText: 'Retry' }); confirmPopup.then(function(res) { // removed from here -----^ if (res) { $scope.loading = true; console.log("Inner Function: " + u1 + " , " + p1); loginz(u1, p1); } else { console.log('Cancelled'); } }); }}关于javascript - 将值传递到内部javascript函数中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34084705/
10-11 13:07