Método Function.call como retorno de chamada [duplicado]
Esta pergunta já tem uma resposta aqui:
Não é possível usar String # trim como um retorno de chamada para o array # map 1 respostaCom licença, se algo está faltando, mas quando tento usar o método de chamada como retorno de chamada, isso gera um erro estranho no Chrome e no Node.js.
[' foo', ' bar '].map(String.prototype.trim.call);
TypeError: [" foo", " bar "].map is not a function
at Array.map (native)
Mas esses trechos funcionam:
[' 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']
Também verifiquei o tipo decall
função:
typeof String.prototype.trim.call; // => 'function'
Estou fazendo algo errado? Alguém poderia me explicar por que eu recebo esse erro? Obrigado.