Warum ist "dies" in einer anonymen Funktion nicht definiert, wenn mit strengen?

Warum ist diese in einer anonymen Funktion nicht definiert, wenn mit javascript im strict-Modus? Ich verstehe, warum dies sinnvoll ist, aber ich konnte keine konkrete Antwort.

Beispiel:

(function () {
    "use strict";

    this.foo = "bar"; //*this* is undefined, why?
}());

Test in einem fiddle: http://jsfiddle.net/Pyr5g/1/
Überprüfen Sie heraus die logger (firebug).

Beachten Sie, dass dies hat nichts zu tun mit anonymen Funktionen, aber der Aufruf-Methode. Siehe diese geänderte fiddle (schau in der Konsole).
Dies kann sein, wo einige der Verwirrung kam. Vielen Dank für den Hinweis.

InformationsquelleAutor TJ. | 2012-03-22

Schreibe einen Kommentar