Warum ist JavaScript bind() erforderlich?

Das problem in Beispiel 1 ist 'dies' unter Bezugnahme auf die globalen Namen statt der MeinName Objekt.

Verstehe ich die Verwendung von bind() in der Einstellung der Wert dieser auf ein bestimmtes Objekt, so löst es das problem in Beispiel 1, aber warum tritt dieses problem in Erster Linie? Ist es nur die Art, wie Javascript erstellt wurde?

Ich bin auch gefragt, warum Beispiel 3 löst das Problem und der Unterschied zwischen Beispiel 2 und 3.

JS:

this.name = "John"

var myName = {
  name: "Tom",
  getName: function() {
    return this.name
  }
}

var storeMyName = myName.getName; //example 1
var storeMyName2 = myName.getName.bind(myName); //example 2
var storeMyName3 = myName.getName(); //example 3

console.log("example 1: " + storeMyName()); //doesn't work
console.log("example 2: " + storeMyName2()); //works
console.log("example 3: " + storeMyName3); //works

InformationsquelleAutor Tom | 2016-12-30
Schreibe einen Kommentar