String # trim kann nicht als Rückruf für Array # map verwendet werden

Aus irgendeinem Grund kann ich nicht verwendenString.prototype.trim.call als Rückruf für Array-Methoden, wie zmap oderfilter.

In diesem Fall funktionieren zwei Funktionen gleich:

function trim(string) {
  return string.trim();
}

var string = ' A ';

trim(string);                       // 'A'
String.prototype.trim.call(string); // 'A'

Wenn ich jedoch versuche, sie als Rückruf für eine Array-Methode zu übergeben, schlägt die zweite fehl:

var array = [' A', 'B ', ' C '];

array.map(trim);                       // ['A', 'B', 'C'];
array.map(String.prototype.trim.call); // TypeError: undefined is not a function

Demo:http://jsbin.com/ubUHiHon/1/edit?js,console

Ich gehe in einem letzteren Fall davon austhis zeigt nicht auf ein Array-Element, aber ich möchte eine klare Erklärung darüber erhalten, was passiert.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage