Maison  >  Article  >  interface Web  >  Explication détaillée des instances globales d'objet/fonction JavaScript fournies par divers environnements de navigateur

Explication détaillée des instances globales d'objet/fonction JavaScript fournies par divers environnements de navigateur

伊谢尔伦
伊谢尔伦original
2017-07-27 16:54:211475parcourir

Objets/fonctions globaux fournis par l'environnement hôte

tels que window, alert, setTimeout, document, location, etc. La plupart des navigateurs restreindront leur réécriture

window = 55; 
alert(window);

Cette phrase provoquera une erreur sous IE, indiquant une copie illégale, et la boîte de dialogue suivante ne sera pas exécutée. D'autres navigateurs affichent toujours la fenêtre lorsque window=55 n'existe pas.

Alerte de réécriture

alert = 55; 
console.log(alert);

IE affiche une erreur, Firefox/Chrome/Safari/Opera a été réécrit et vous pouvez voir la sortie de 55 depuis la console correspondante. On peut constater que certains navigateurs ne prennent pas en charge la réécriture des objets/fonctions globales fournies par l'environnement hôte, alors que d'autres le peuvent.

Voici deux façons de déclarer des variables globales

a1 = 11; 
var a2 = 22; 
for(a in window){ 
    if(a=='a1'||a=='a2'){ 
        alert(a) 
    } 
}

Le code ci-dessus n'affichera pas la boîte d'informations dans IE. Le contenu interne dans IE est le suivant

//IE 
with(host_object){//window 
    with(global_object){//Global 
        a1 = 11; 
        var a2 = 22; 
    }    
}
C'est-à-dire que a1 et a2 sont les propriétés de l'objet Global fournies par le moteur JS comme le premier mentionné ci-dessus, et non les propriétés de l'objet window fournies par le deuxième environnement hôte. Par conséquent, a1 et a2 n’existent pas dans la fenêtre d’IE. Si une référence à l'objet Global est fournie dans IE, le code suivant peut peut-être faire apparaître une boîte d'informations.

for(a in Global){ 
    if(a=='a1'||a=='a2'){ 
        alert(a) 
    } 
}
L'intérieur de Firefox/Safari/Chrome/Opera ressemble probablement à ce qui suit

//Firefox/Safari/Chrome/Opera 
with(host_object){//window 
    a1 = 11; 
    var a2 = 22; 
    with(global_object){//Global 
    }    
}
C'est-à-dire que a1 et a2 sont le deuxième type mentionné ci-dessus, la situation globale fournie par les propriétés de l'environnement hôte dans la fenêtre de l'objet. Par conséquent, lorsque for est dans la fenêtre, a1 et a2 existent et une boîte d'informations apparaît.

Regardez la méthode tierce de déclaration de la variable globale window.a3 = 33. Cela montre que a3 est accroché à la fenêtre en tant que propriété de la fenêtre, il peut donc être obtenu quand pour dans la fenêtre dans tous les navigateurs. a3.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn