Maison  >  Article  >  interface Web  >  Quelle est la différence entre les objets hôtes et les objets natifs en javascript

Quelle est la différence entre les objets hôtes et les objets natifs en javascript

青灯夜游
青灯夜游original
2021-07-06 14:45:003813parcourir

Différence : les objets natifs sont des objets fournis par l'implémentation ECMAScript indépendamment de l'environnement hôte, c'est-à-dire des classes (types de référence) définies par ECMA-262, tandis que les objets hôtes sont des objets fournis par l'environnement hôte implémenté par ECMAScript, et tous non ; -les objets natifs sont des objets hôtes.

Quelle est la différence entre les objets hôtes et les objets natifs en javascript

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

La différence entre les objets intégrés et les objets natifs (Naitve) est que les premiers sont toujours créés pendant la phase d'initialisation du moteur et sont un sous-ensemble des seconds tandis que les seconds incluent certains objets créés dynamiquement pendant le processus d'exécution. objets créés.

Les objets d'extension du moteur ne constituent pas un ensemble trop vaste. De manière générale, ils sont relativement certains. Ils appartiennent également aux objets natifs du moteur (mais n'appartiennent pas aux objets natifs de la spécification ECMA).

L'objet hôte n'est pas un objet natif du moteur, mais un objet enregistré par le framework hôte dans le moteur JavaScript via un certain mécanisme.

Certains hôtes appelleront également les objets/constructeurs qu'ils fournissent "objets natifs". Par exemple, Internet Explorer 7 appelle le XMLHttpRequest() qu'il fournit en natif - contrairement aux versions antérieures de celui-ci. Objets créés via des méthodes telles que "new ActiveXObject". (« Microsoft.XMLHTTP ») ». Dans ce cas, les lecteurs doivent noter la différence entre « les objets natifs de l’hôte » et les « objets natifs du moteur ».

1. Objets natifs

  ECMA-262 définit les objets natifs comme « des objets fournis par les implémentations ECMAScript qui sont indépendantes de l'environnement hôte ».

 Objet, Fonction, Tableau, Chaîne, Booléen, Nombre, Date, RegExp, Erreur, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, ActiveXObject (serveur), Enumerator (classe de parcours de collection), RegExp (expression régulière)

  On voit que, tout simplement, les objets natifs sont des classes (types de référence) définies par ECMA-262.

2. Objets intégrés

ECMA-262 définit les objets intégrés comme "tous les objets fournis par l'implémentation ECMAScript, indépendamment de l'environnement hôte, et apparaissent lorsque le programme ECMAScript commence à s'exécuter". Cela signifie que le développeur n'a pas besoin d'instancier explicitement l'objet intégré, il est déjà instancié.

 Il est également "indépendant de l'environnement d'accueil". Selon la définition, il semble difficile de faire la différence entre les « objets intégrés » et les « objets natifs ». ECMA-262 ne définit que deux objets intégrés, à savoir Global et Math (ce sont également des objets natifs et, par définition, chaque objet intégré est un objet natif).

 C’est compréhensible. Les objets intégrés sont un type d'objets natifs. Parmi les deux objets qu’il contient, on utilise souvent l’objet Math, mais quel est cet objet Global ?

 L'objet Global est l'objet le plus spécial dans ECMAScript, car en fait il n'existe pas du tout ! Dans ECMAScript, il n'y a pas de fonctions indépendantes, toutes les fonctions doivent être des méthodes d'un objet.

  Semblables aux méthodes isNaN(), parseInt() et parseFloat(), elles semblent toutes être des fonctions, mais en fait, ce sont toutes des méthodes de l'objet Global. Et les méthodes de l’objet Global ne s’arrêtent pas là.

3. Objet hôte

  Qu'est-ce qu'un « objet hôte » ? L'« hôte » dans ECMAScript est bien entendu l'environnement d'exécution de notre page Web, c'est-à-dire le « système d'exploitation » et le « navigateur ». Tous les objets non natifs sont des objets hôtes, c'est-à-dire des objets fournis par l'environnement hôte implémenté par ECMAScript.

 Tous les objets BOM et DOM sont des objets hôtes. Parce qu'il affiche différents contenus pour différents environnements « hôtes ». En fait, pour parler franchement, les objets qui ne sont pas officiellement définis par ECMAScript appartiennent à l'objet hôte, car la plupart des objets non définis sont des objets créés par le programme ECMAScript. TML DOM est une norme du W3C (abréviation de HTML Document Object Model, Document Object Model for HTML).

 HTML DOM définit une série d'objets standard pour HTML, ainsi que des méthodes standard d'accès et de traitement des documents HTML.

 Grâce au DOM, vous pouvez accéder à tous les éléments HTML, ainsi qu'au texte et aux attributs qu'ils contiennent. Le contenu peut être modifié et supprimé, et de nouveaux éléments peuvent également être créés.

【Recommandations associées : Tutoriel d'apprentissage Javascript

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