Wenn die folgende foo
Funktion mit new
aufgerufen wird, wird es in eine Konstruktorfunktion, die das Objekt zurückgibt, das zu baz
zugewiesen wird.Javascript - Funktionskonstruktor mit neuem Schlüsselwort
function foo() {
this.baz = "baz";
console.log(`${this.bar} ${baz}`);
}
var bar = "bar";
var baz = new foo(); // prints undefined undefined
Die Frage ist, warum baz
innerhalb der Konsole Anweisung undefined
Wert bekommt - es wäre das richtig sein, zu sagen, während baz
gehisst wurde, wenn neue foo() aufgerufen wird, bis die Funktion der baz
kehrt die nicht zugeordnet zurückgegebenes Objekt?
console.log(baz)
in einer späteren Zeile druckt das zurückgegebene Objekt korrekt.
Ihre Antwort geht davon aus, der Code muss behoben werden. nicht auf der Suche nach einer Lösung, sondern Bestätigung der Erklärung für das Verhalten. – user3206440