[英]JavaScript callback function return undefined
我正在尝试编写两个函数。 一个包含带有forEach
方法的数组元素,另一个是回调 function,它从第一个 function 访问数组元素并log
它们的长度。 第二个 function 不工作并抛出Uncaught ReferenceError
。 我想知道为什么我会收到这个错误。
const fruits = ["Banana", "Mango", "Apple"]; fruits.forEach(listFruits); function listFruits(allFruits) { console.log(allFruits); } function countFruits(callback) { callback(allFruits); console.log(allFruits.length); } countFruits(listFruits);
我该如何解决这个error
? 并在我的callback function
中访问元素的length
,任何帮助将不胜感激
您正在尝试使用数组作为道具调用 function
const fruits = ["Banana", "Mango", "Apple"]; fruits.forEach(listFruits); function listFruits(allFruits) { console.log(allFruits); } function countFruits(callback) { // the following line is the problem, "allFruits" are not defined. // if you change the prop to the array "fruits" the error is solved callback(fruits); console.log(fruits.length); } countFruits(listFruits);
allFruits
是 listFruits function 中的局部变量,在listFruits
之外无法访问。
相反, countFruits
应该采用自己的allFruits
参数。 然后它可以调用回调 function,传递allFruits.length
以使其记录。
const fruits = ["Banana", "Mango", "Apple"]; fruits.forEach(listFruits); function listFruits(allFruits) { console.log(allFruits); } function countFruits(callback, allFruits) { callback(allFruits.length); } countFruits(listFruits, fruits);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.