function buildCatList(list, returnVal, fn) {
setTimeout(function (name) {
console.log(name);
var catList = list === '' ? name : list + ',' + name;
fn(catList);
}, 1, returnVal);
}
buildCatList('', 'Panther', getJanguar);
function getJanguar(list) {
buildCatList(list, 'Janguar', getLynx);
}
function getLynx(list) {
buildCatList(list, 'Lynx', getSnowLeopard);
}
function getSnowLeopard(list) {
buildCatList(list, 'Snow Leopard', getLion);
}
function getLion(list) {
buildCatList(list, 'Lion',print);
}
function print(list) {
console.log(list);
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
代码里setTimeout传入了三个参数,第三个参数returnVal(值为上一个setTimeout的返回值)将作为第一个参数function的参数传入进去,也就是问题中的name。
参数name:是通过setTimeout(function(name){},1,returnVal)中的参数returnVal来获取值的,
传递过来的returnVal值会传递给name参数
setTimeout函数有三个参数:
1.匿名函数
2.时间(代码执行的时间)
3.脚本语言(可选)
所以name的值是returnVal传递过去的