在外部定义回调时,如何在foreach上使用父参数



var products  ['product1', 'product2', 'product3']
var color = 'blue';
function callback (product) {
console.log(product + color)
}
function printEachProduct (products, color) {
products.forEach(callback)
}

如果我的回调是在父作用域之外定义的,我如何访问颜色参数?

  1. callback必须接受color作为参数
  2. 将一个新函数传递给forEach,该函数使用正确的参数调用callback
var products  ['product1', 'product2', 'product3']
var color = 'blue';
function callback (product, color) {
console.log(product + color)
}
function printEachProduct (products, color) {
products.forEach(function(product) { callback(product, color); })
}

我认为这只是代码的开始,因为callback没有存在的理由。

您可以使用currying,并将color作为第一个参数传递。

var products = ['product1', 'product2', 'product3'];
var color = 'blue';
function createCallback(color) {
return function (product) {
console.log(product + color);
};
}
function printEachProduct(products, color) {
products.forEach(createCallback(color));
}

最新更新