Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der globalen Objekt-/Funktionsinstanzen von JavaScript, die von verschiedenen Browserumgebungen bereitgestellt werden

Detaillierte Erläuterung der globalen Objekt-/Funktionsinstanzen von JavaScript, die von verschiedenen Browserumgebungen bereitgestellt werden

伊谢尔伦
伊谢尔伦Original
2017-07-27 16:54:211521Durchsuche

Globale Objekte/Funktionen, die von der Host-Umgebung bereitgestellt werden

wie Fenster, Warnung, SetTimeout, Dokument, Standort usw. Die meisten Browser schränken ihr Umschreiben ein

window = 55; 
alert(window);

Dieser Satz führt im IE zu einem Fehler, der auf illegales Kopieren hinweist, und das folgende Popup-Fenster wird nicht ausgeführt. Andere Browser öffnen das Fenster immer noch, wenn window=55 nicht existiert.

Warnung zum Umschreiben

alert = 55; 
console.log(alert);

IE meldet einen Fehler, Firefox/Chrome/Safari/Opera wurde neu geschrieben und Sie können die Ausgabe von 55 auf der entsprechenden Konsole sehen. Es ist ersichtlich, dass einige Browser das Umschreiben globaler Objekte/Funktionen, die von der Host-Umgebung bereitgestellt werden, nicht unterstützen, andere hingegen schon.

Es gibt zwei Möglichkeiten, globale Variablen zu deklarieren

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

Der obige Code öffnet das Informationsfeld im IE nicht. Der interne Inhalt im IE ist wie folgt

//IE 
with(host_object){//window 
    with(global_object){//Global 
        a1 = 11; 
        var a2 = 22; 
    }    
}

Das heißt, a1 und a2 sind die Eigenschaften des globalen Objekts, das von der JS-Engine wie oben erwähnt bereitgestellt wird, und nicht die Eigenschaften des Fensterobjekts, das von der zweiten Hostumgebung bereitgestellt wird. Daher sind a1 und a2 im Fenster im IE nicht vorhanden. Wenn der IE einen Verweis auf das globale Objekt bereitstellt, kann der folgende Code möglicherweise ein Informationsfeld anzeigen.

for(a in Global){ 
    if(a=='a1'||a=='a2'){ 
        alert(a) 
    } 
}

Das Innere von Firefox/Safari/Chrome/Opera sieht wahrscheinlich wie folgt aus

//Firefox/Safari/Chrome/Opera 
with(host_object){//window 
    a1 = 11; 
    var a2 = 22; 
    with(global_object){//Global 
    }    
}

Das heißt, a1 und a2 sind der zweite oben genannte Typ, sofern die Gesamtsituation gegeben ist durch die Eigenschaften der Hostumgebung im Objektfenster. Wenn daher im Fenster „for“ sowohl „a1“ als auch „a2“ vorhanden sind, wird ein Informationsfeld angezeigt.

Sehen Sie sich die Methode eines Drittanbieters zum Deklarieren der globalen Variablen window.a3 = 33 an. Dies zeigt, dass a3 als Eigenschaft des Fensters an das Fenster hängt, sodass es abgerufen werden kann, wenn für in window in alle Browser.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der globalen Objekt-/Funktionsinstanzen von JavaScript, die von verschiedenen Browserumgebungen bereitgestellt werden. 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