Variable „Name“ Verhaltensdiskrepanz in JavaScript-Objekten
In JavaScript wurde dem Variablennamen eine Sonderrolle als Zeichenfolgenwert zugewiesen das Fensterobjekt (window.name). Dieses einzigartige Merkmal kann zu unerwartetem Verhalten führen, wenn der Name in Verbindung mit JavaScript-Objekten verwendet wird.
Betrachten Sie den folgenden Codeausschnitt, der als globales Skript ausgeführt wird:
var name = {}; name.FirstName = 'Tom'; alert(name.FirstName);
In Chrome wird dieser Code erzeugt „undefiniert“, wenn die Warnung angezeigt wird, während in IE und Firefox auf die FirstName-Eigenschaft zugegriffen werden kann und „Tom“ angezeigt wird.
Diese Diskrepanz entsteht durch Chrome explizit zwingt window.name zu einer Zeichenfolge. Infolgedessen setzt die Zuweisung var name = {} im Wesentlichen den globalen Variablennamen (window.name) auf „[object Object]“. Da „name“ nun ein Grundelement ist, sind Versuche, Eigenschaften wie „name.FirstName“ festzulegen, wirkungslos.
Um dieses Problem zu beheben, vermeiden Sie die Verwendung von „name“ als globale Variable. Durch die Zuweisung eines anderen Variablennamens können Sie sicherstellen, dass das mit window.name verknüpfte eindeutige Verhalten nicht versehentlich ausgelöst wird.
Das obige ist der detaillierte Inhalt vonWarum führt die Zuweisung von „var name = {}' zu unterschiedlichen Ergebnissen in verschiedenen Browsern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!