Если я правильно понимаю, этот код поможет вам.Первое из значений, которое должно быть передано в функцию 1-3, является общим для них и будет передаваться из mapFunction, но другие параметры будут предоставлять откуда.Если вам нужно передать их при вызове mapFunc
, вы можете попробовать этот стильный способ, который прекрасно работает с любыми другими функциями и любым количеством параметров (func4, ...):
function func1(p1) { console.log(p1); }
function func2(p1, p2) { console.log(p1 + ", " + p2); }
function func3(p1, p2, p3) { console.log(p1 + ", " + p2 + ", " + p3); }
function mapFunction(list, callback) {
const something = 'insideValue';
return callback.apply(callback, [something].concat(Array.apply(null, arguments).slice(2, 1+callback.length)));// you can remove 1+callback.length and pass all parameters to callback but ignore extra parameters there (in func1-3).
}
var list=["any thing ..."];
mapFunction(list, func1);
mapFunction(list, func2, "param2val");
mapFunction(list, func3, "param2val", "p3val");
Также вы могли бы передать их как simple objects
или array
в mapFunc как только один параметр.