Heim  >  Artikel  >  Web-Frontend  >  Was ist der Unterschied zwischen Hostobjekten und nativen Objekten in Javascript?

Was ist der Unterschied zwischen Hostobjekten und nativen Objekten in Javascript?

青灯夜游
青灯夜游Original
2021-07-06 14:45:003815Durchsuche

Unterschied: Native Objekte sind Objekte, die von der ECMAScript-Implementierung unabhängig von der Host-Umgebung bereitgestellt werden, d -native Objekte sind Hostobjekte.

Was ist der Unterschied zwischen Hostobjekten und nativen Objekten in Javascript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Der Unterschied zwischen integrierten Objekten und nativen (naiven) Objekten besteht darin, dass erstere immer während der Engine-Initialisierungsphase erstellt werden und eine Teilmenge der letzteren sind, während letztere einige Objekte enthalten, die während des laufenden Prozesses erstellt werden erstellte Objekte.

Engine-Erweiterungsobjekte sind eine nicht allzu große Menge, sie gehören auch zu den nativen Objekten der Engine (gehören jedoch nicht zu den nativen Objekten der ECMA-Spezifikation).

Das Host-Objekt ist kein natives Objekt der Engine, sondern ein Objekt, das vom Host-Framework über einen bestimmten Mechanismus in der JavaScript-Engine registriert wird.

Einige Hosts nennen die von ihnen bereitgestellten Objekte/Konstruktoren auch „native Objekte“. Beispielsweise ruft Internet Explorer 7 die von ihm bereitgestellten XMLHttpRequest()-Objekte auf, die über Methoden wie „new ActiveXObject“ erstellt wurden ('Microsoft.XMLHTTP')". In diesem Fall sollten die Leser den Unterschied zwischen „nativen Objekten des Hosts“ und „nativen Objekten der Engine“ beachten.

1. Native Objekte

  ECMA-262 definiert native Objekte (native Objekte) als „von ECMAScript-Implementierungen bereitgestellte Objekte, die unabhängig von der Hostumgebung sind.“

 Objekt, Funktion, Array, String, Boolescher Wert, Zahl, Datum, RegExp, Fehler, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, ActiveXObject (Server), Enumerator (Sammlungsdurchlaufklasse), RegExp (regulärer Ausdruck)

  Es ist ersichtlich, dass native Objekte vereinfacht gesagt Klassen (Referenztypen) sind, die durch ECMA-262 definiert sind.

2. Integrierte Objekte

ECMA-262 definiert integrierte Objekte als „alle von der ECMAScript-Implementierung bereitgestellten Objekte, unabhängig von der Hostumgebung, und erscheinen, wenn die Ausführung des ECMAScript-Programms beginnt.“ Dies bedeutet, dass der Entwickler das integrierte Objekt nicht explizit instanziieren muss, es ist bereits instanziiert.

 Es ist auch „unabhängig von der Host-Umgebung“. Der Definition zufolge scheint es schwierig zu sein, den Unterschied zwischen „eingebauten Objekten“ und „nativen Objekten“ zu unterscheiden. ECMA-262 definiert nur zwei integrierte Objekte, nämlich Global und Math (sie sind auch native Objekte und per Definition ist jedes integrierte Objekt ein natives Objekt).

 Das ist verständlich. Integrierte Objekte sind eine Art native Objekte. Unter den beiden darin enthaltenen Objekten verwenden wir oft das Math-Objekt, aber was ist dieses globale Objekt?

 Das globale Objekt ist das speziellste Objekt in ECMAScript, weil es tatsächlich überhaupt nicht existiert! In ECMAScript gibt es keine unabhängigen Funktionen, alle Funktionen müssen Methoden eines Objekts sein.

  Ähnlich wie die Methoden isNaN(), parseInt() und parseFloat() scheinen sie alle Funktionen zu sein, aber tatsächlich sind sie alle Methoden des globalen Objekts. Und die Methoden des globalen Objekts hören hier nicht auf.

3. Host-Objekt

  Was ist ein „Host-Objekt“? Der „Host“ in ECMAScript ist natürlich die laufende Umgebung unserer Webseite, also das „Betriebssystem“ und der „Browser“. Alle nicht nativen Objekte sind Hostobjekte, also Objekte, die von der von ECMAScript implementierten Hostumgebung bereitgestellt werden.

 Alle BOM- und DOM-Objekte sind Hostobjekte. Weil es unterschiedliche Inhalte für unterschiedliche „Host“-Umgebungen anzeigt. Um es ganz klar auszudrücken: Die von ECMAScript nicht offiziell definierten Objekte gehören zum Hostobjekt, da die meisten undefinierten Objekte vom ECMAScript-Programm erstellte Objekte sind. TML DOM ist ein W3C-Standard (die Abkürzung für HTML Document Object Model, Document Object Model für HTML).

 HTML DOM definiert eine Reihe von Standardobjekten für HTML sowie Standardmethoden für den Zugriff auf und die Verarbeitung von HTML-Dokumenten.

 Über das DOM können Sie auf alle HTML-Elemente sowie den darin enthaltenen Text und die Attribute zugreifen. Der Inhalt kann geändert und gelöscht werden, außerdem können neue Elemente erstellt werden.

【Verwandte Empfehlungen: Javascript-Lern-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Hostobjekten und nativen Objekten in Javascript?. 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