var products ['product1', 'product2', 'product3']
var color = 'blue';
function callback (product) {
console.log(product + color)
}
function printEachProduct (products, color) {
products.forEach(callback)
}
如果我的回调是在父作用域之外定义的,我如何访问颜色参数?
callback
必须接受color
作为参数- 将一个新函数传递给
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));
}