Christoph: JavaScript: Objekte und Kontext: Unlogischer Fehler

Beitrag lesen

Moin.

Das Problem wurde ja bereits geklärt. Ich bin übrigens auch schon darüber gestolpert, denn so abwegig ist Michaels Annahme nicht.

JavaScript interpretiert offensichtlich

var name = value;

genauso wie

var name;
    name = value;

und setzt dies in folgenden Pseudo-Code um (der so in JavaScript nicht möglich ist, da auf das Kontext-Objekt nicht zugegriffen werden kann):

context.createVar('name');
    context.setVar('name', value);

Ebenso wäre aber auch denkbar,

var name = value;

als

context.createAndSetVar('name', value);

und entsprechend

var name;
    name = value;

als

context.createAndSetVar('name', undefined);
    context.setVar('name', value);

zu interpretieren, was unterschiedliche Ergebnisse zur Folge hätte, wenn value selbst auf eine Variable names 'name' zugreift, da ja Argumente in JavaScript strikt, d.h. vor Funktionsaufruf evaluiert werden.

Christoph