Javascript 将参数传递给Array.forEach回调函数
在上面的代码中,如何使变量“x”在回调函数中可用?或者在这种情况下我必须回到使用for循环吗?它是可用的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={
名字:“迈克”
};
['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);