Maison >interface Web >js tutoriel >Pourquoi l'attribution de « var name = {} » produit-elle des résultats différents dans différents navigateurs ?
Différence de comportement de la variable "nom" dans les objets JavaScript
En JavaScript, le nom de la variable s'est vu attribuer un rôle spécial en tant que valeur de chaîne dans l'objet fenêtre (window.name). Cette caractéristique unique peut entraîner un comportement inattendu lors de l'utilisation de name en conjonction avec des objets JavaScript.
Considérez l'extrait de code suivant exécuté en tant que script global :
var name = {}; name.FirstName = 'Tom'; alert(name.FirstName);
Dans Chrome, ce code produira "indéfini" lorsque l'alerte est affichée, alors que dans IE et Firefox, la propriété FirstName est accessible et affiche "Tom".
Cette divergence se produit parce que Chrome explicitement contraint window.name à une chaîne. En conséquence, l'affectation var name = {} définit essentiellement le nom de la variable globale (window.name) sur "[object Object]". Puisque name est désormais une primitive, les tentatives de définition de propriétés telles que name.FirstName seront inefficaces.
Pour résoudre ce problème, évitez d'utiliser name comme variable globale. En attribuant un nom de variable différent, vous pouvez vous assurer que le comportement unique associé à window.name n'est pas déclenché par inadvertance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!