Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将参数传递给Array.forEach回调函数_Javascript_Arrays_Foreach_Higher Order Functions - Fatal编程技术网

Javascript 将参数传递给Array.forEach回调函数

Javascript 将参数传递给Array.forEach回调函数,javascript,arrays,foreach,higher-order-functions,Javascript,Arrays,Foreach,Higher Order Functions,在上面的代码中,如何使变量“x”在回调函数中可用?或者在这种情况下我必须回到使用for循环吗?它是可用的 设x={ 名字:“迈克” }; ['Hello','bye'].forEach(函数(问候语){ document.querySelector('pre').innerHTML+=greeting+','+x.name+'\n'; }); 您可以将“thisArg”作为第二个参数传递给forEach,例如: let x = { a: 123 }; things = ['foo', 'bar

在上面的代码中,如何使变量“x”在回调函数中可用?或者在这种情况下我必须回到使用for循环吗?

它是可用的

设x={
名字:“迈克”
};
['Hello','bye'].forEach(函数(问候语){
document.querySelector('pre').innerHTML+=greeting+','+x.name+'\n';
});
您可以将“thisArg”作为第二个参数传递给forEach,例如:

let x = { a: 123 };
things = ['foo', 'bar']
things.forEach(function(thing) {
    alert( this.a + thing );
}, x);

可能会有所帮助,具体取决于您尝试执行的操作。

您可以访问x作为closure@Gonzalo.-好的,我把代码改了一点。作为结束,我还能访问x吗?因为当我在forEach回调函数中放置断点时,在闭包列表中看不到“x”。要在该列表中列出,您必须实际将其用作闭包。否则,js的所有变量都是可访问的。只要在您的函数中使用它(即使用console.log打印),您就会看到它的列表。如果我对代码做了一些更改。我还可以访问x作为结束吗?@Ayushim是的,你仍然可以。我添加了一个使用参数的示例。它的工作原理是一样的。您可以通过在自己的代码中执行
console.log(x)
来证明这一点。
let x = { a: 123 };
things = ['foo', 'bar']
things.forEach(function(thing) {
    alert( this.a + thing );
}, x);