Heim >Web-Frontend >js-Tutorial >Warum führt die Zuweisung von „var name = {}' zu unterschiedlichen Ergebnissen in verschiedenen Browsern?

Warum führt die Zuweisung von „var name = {}' zu unterschiedlichen Ergebnissen in verschiedenen Browsern?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 03:08:081000Durchsuche

Why Does Assigning `var name = {}` Produce Different Results in Different Browsers?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn