是否可以通过回调函数访问函数内的 属性?
Is it possible to acces a property within a function through a callback function?
所以我想知道是否可以通过回调函数访问函数内的局部变量。例如,我可以在函数的 for 循环中访问 ' i ' 变量。
function forWithAction(r,callback){
for(let i = 0; i < r; i++){
callback();
}
}
forWithAction(5,function(){
console.log(i);
});
到目前为止我运气不好,但我对这种可能性非常乐观,所以我想知道是否有人可以给我线索或答案。
用你的代码是可能的,但在函数回调中,你想将你可能想要访问的每个变量传递到函数中。这就是 map、filter 和 reduce 的工作方式。
function forWithAction(r,callback){
for(let i = 0; i < r; i++){
callback(i, r);
}
}
//iVal and rVal are just place holders for i and r that I'm passing into this function
forWithAction(5,function(iVal, rVal){
console.log(iVal);
});
地图示例
function Map(arr, callback)
{
let output = [];
let secretVariable = 'I\'m hidden inside :D';
for(let i = 0; i < arr.length; i++)
{
//I'm passing 4 values into my callback. So any call back I create
//I can access these 4 values
let val = callback(arr[i], i, arr, secretVariable)
output.push(val);
}
return output;
}
let myArray = [2, 5, 1, 8, 9, 3, 2];
Map(myArray, function(val, ind, arr, secret) {
console.log('__ARRAY_VALUE__: ', val);
console.log('__INDEX__(i) :', ind);
console.log(secret);
return val;
});
所以我想知道是否可以通过回调函数访问函数内的局部变量。例如,我可以在函数的 for 循环中访问 ' i ' 变量。
function forWithAction(r,callback){
for(let i = 0; i < r; i++){
callback();
}
}
forWithAction(5,function(){
console.log(i);
});
到目前为止我运气不好,但我对这种可能性非常乐观,所以我想知道是否有人可以给我线索或答案。
用你的代码是可能的,但在函数回调中,你想将你可能想要访问的每个变量传递到函数中。这就是 map、filter 和 reduce 的工作方式。
function forWithAction(r,callback){
for(let i = 0; i < r; i++){
callback(i, r);
}
}
//iVal and rVal are just place holders for i and r that I'm passing into this function
forWithAction(5,function(iVal, rVal){
console.log(iVal);
});
地图示例
function Map(arr, callback)
{
let output = [];
let secretVariable = 'I\'m hidden inside :D';
for(let i = 0; i < arr.length; i++)
{
//I'm passing 4 values into my callback. So any call back I create
//I can access these 4 values
let val = callback(arr[i], i, arr, secretVariable)
output.push(val);
}
return output;
}
let myArray = [2, 5, 1, 8, 9, 3, 2];
Map(myArray, function(val, ind, arr, secret) {
console.log('__ARRAY_VALUE__: ', val);
console.log('__INDEX__(i) :', ind);
console.log(secret);
return val;
});