Я только начал изучать JS несколько месяцев назад и пытался понять, что "args" делает в исходном коде "_.invoke". Кто-нибудь может ответить на этот вопрос, пожалуйста?
Я прочитал mdn .apply и прочитал другие исходные коды _.invoke, но не смог понять.
_.invoke = function (collection, functionOrKey, args) {
if(typeof functionOrKey === "string") {
return _.map(collection, function(item) {
return item[functionOrKey].apply(item, args);
});
}
else return _.map(collection, function(item) {
return functionOrKey.apply(item, args);
});
};
test functionпримерно так:
_.invoke(['dog', 'cat'], 'toUpperCase');
});
it('runs the specified method on each item in the array, and returns a list of results', function() {
var upperCasedStrings = _.invoke(['dog', 'cat'], 'toUpperCase');
expect(upperCasedStrings).to.eql(['DOG', 'CAT']);
в тестовой функции, нет аргументов, почему!?