Ob Sie this
oder den Funktionsnamen verwenden, hängt davon ab, wie die Funktion aufgerufen wird.
Eine this
Wert der Funktion gesetzt, wie durch die Funktion aufgerufen wird oder durch bind, so dass, wenn die Funktion wird immer als ein Verfahren eines geeigneten Objekts, this
verwendet aufgerufen werden. Aber wenn es anders heißen könnte, oder this
sollte nur auf ein bestimmtes Objekt verweisen, verwenden Sie entweder bind oder den Objektnamen.
z.B.das OP Beispiel gegeben, betrachtet:
var x = user.showName;
x();
In dem obigen wird showName
genannt, ohne seine this
Einstellung, so wird standardmäßig auf das globale Objekt und this.name
innerhalb der Funktion wahrscheinlich nicht sein wird, was zu erwarten ist.
Das Ändern des Funktionsnamens ist kein besonders problematisches Problem, da in den Texteditoren relativ leistungsfähige Such- und Ersetzungsfunktionen verfügbar sind.
Übrigens wird diese Frage häufig gestellt. Es gibt keine "richtige" Antwort, sondern nur Ratschläge, wie man in bestimmten Fällen Entscheidungen treffen kann.
Beachten Sie, dass 'this' andere Nebenwirkungen haben kann:' user.show_name.call (null); ' – David