Aus irgendeinem Grund kann ich String.prototype.trim.call
nicht als Callback für Array-Methoden verwenden, z. B. map
oder filter
.
In diesem Fall funktionieren zwei Funktionen gleich:
%Vor%Wenn ich jedoch versuche, sie als Callback für eine Array-Methode zu übergeben, schlägt die zweite fehl:
%Vor%Demo: Ссылка
Ich gehe davon aus, dass this
im letzteren Fall nicht auf ein Array-Element zeigt, aber ich möchte eine klare Erklärung dafür bekommen, was passiert.
%Vor%
Wenn Sie im ersten Fall die Methode call
aufrufen, wird this
value ist an die Funktion String.prototype.trim
gebunden. Im zweiten Fall greifen Sie einfach auf die Funktion call
zu, ohne dass sie an irgendetwas gebunden ist - Sie hätten einfach
Diese Methode wird mit nichts als this
-Wert, dem Element aus Ihrem Array, dem Index und dem gesamten Array als Parameter aufgerufen. Wenn Sie call
nicht für eine Funktion aufrufen, wird sie ausgelöst. Sie können entweder den zweiten Parameter von map
oder verwenden die Methode bind
, um den this
-Wert zu korrigieren für die call
:
Tags und Links javascript string prototype