Betrachten Sie diesen einfachen Code:
"use strict";
var obj = {
f: function() {
this.prop = 'value';
g.bind( this )();
}
};
function g() {
console.log( this.prop );
}
Wenn ich versuche, diesen Code zu validieren, gibt mir jshint den Fehler, Possible strict violation.
wo ich anrufe console.log( this.prop );
. Dies liegt daran, dass this
in einer Funktion im strengen Modus undefiniert ist.
Aber ich binde diese Funktion, bevor ich sie aufrufe, ebenso this
wie das richtige Objekt.
Ich verwende dieses "Entwurfsmuster", um ein Durcheinander des Hauptobjekts zu vermeiden. Wenn Sie die Eigenschaften in den Parametern übergeben, wird auch die Funktion unübersichtlich, daher lehne ich dies ab. Außerdem ist dies genau das, wofür es bind
ist.
Gibt es eine Möglichkeit für JSHint, mich dies tun zu lassen?