Метод Function.call как обратный вызов [duplicate]
На этот вопрос уже есть ответ здесь:
Не могу использовать String # trim в качестве обратного вызова для Array # map 1 ответИзвините, если я что-то пропустил, но когда я пытаюсь использовать метод вызова в качестве обратного вызова, это вызывает странную ошибку как в Chrome, так и в Node.js.
[' foo', ' bar '].map(String.prototype.trim.call);
TypeError: [" foo", " bar "].map is not a function
at Array.map (native)
Но эти фрагменты работают:
[' foo', ' bar '].map(function (item) {
return String.prototype.trim.call(item);
}); // => ['foo', 'bar']
/*
and ES2015
*/
[' foo', ' bar '].map(function () {
return String.prototype.trim.call(...arguments);
}); // => ['foo', 'bar']
Также я проверил типcall
функция:
typeof String.prototype.trim.call; // => 'function'
Я делаю что-то неправильно? Может ли кто-нибудь объяснить мне, почему я получаю такую ошибку? Благодарю.