Nie można użyć funkcji String # trim jako wywołania zwrotnego mapy Array #
Z jakiegoś powodu nie mogę użyćString.prototype.trim.call
jako wywołanie zwrotne dla metod tablicowych, takich jakmap
lubfilter
.
W tym przypadku dwie funkcje działają tak samo:
function trim(string) {
return string.trim();
}
var string = ' A ';
trim(string); // 'A'
String.prototype.trim.call(string); // 'A'
Jednak gdy próbuję przekazać je jako wywołanie zwrotne dla metody tablicowej, druga nie powiedzie się:
var array = [' A', 'B ', ' C '];
array.map(trim); // ['A', 'B', 'C'];
array.map(String.prototype.trim.call); // TypeError: undefined is not a function
Próbny:http://jsbin.com/ubUHiHon/1/edit?js,console
W tym drugim przypadku zakładamthis
nie wskazuje elementu tablicy, ale chciałbym uzyskać jasne wyjaśnienie tego, co się dzieje.