function a(count) {
return [1,2,3].map(val => val + count);
}
function b(count) {
return [1,2,3].map(fn);
}
function fn(val) {
return val + count;
}
console.log('a' + a(9));
console.log('b' + b(9));
Function a中,map的callback使用arrow function直接定义在function a中,那么map的callback是可以使用count变量的。
如果我想复用map的callback函数,如function b,那么这个callback如何取得count的值呢? 如上面的代码,会抛出ReferenceError: count is not defined 错误。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这是一个作用域延伸的问题,javascript的变量作用域是可以延伸到其他函数内,但是这个函数一定要在其作用域里面定义。比如:
这是可以访问的。如果b函数定义在外面:
这是不行的。