Comment le navigateur chrome fournit-il des objets hôtes à l'environnement JavaScript natif? Les objets hôtes sont-ils implémentés en C++, puis liés au code source V8?Comment le navigateur étend-il l'environnement JavaScript natif pour ajouter des objets hôtes comme Window?
Comment l'objet Window est-il mis à la disposition du programmeur? Clairement, l'environnement JavaScript sur le navigateur est différent de l'environnement node.js. Node.js et chrome utilisent tous les deux le moteur v8, mais ils fournissent deux environnements JavaScript différents. Je me demandais comment cela a été rendu possible.
Pas vraiment sûr de ce que vous demandez, en interne le V8 utilisera C++/assembleur etc Mais le JS interprété aura besoin d'une forme de liaison à ces structures internes. Node.js, serait très similaire ici, alors peut-être que cela pourrait aider. -> https://stackoverflow.com/questions/24042861/nodejs-what-does-process-binding-mean – Keith
Comment le navigateur fournit-il des objets hôte tels que Window, Document, etc.? V8 n'a aucune notion de ces objets. –
Appellez-vous l'environnement natif _node.js_ n? Que voulez-vous dire par 'V8 n'a aucune notion de ces objets. Le navigateur n'est ni plus ni moins natif que _node.js_, les deux étendent les types natifs fournis par le moteur V8 avec une API supplémentaire qui est écrite en C++ et JS. Et V8 fournit une API pour définir des classes en C++ et pour communiquer entre C++ et JS [v8: Embedder's Guide] (https://github.com/v8/v8/wiki/Embedder's-Guide). Vous avez souvent un mélange de JS et C++ pour des objets comme Window, Nodes, Streams, ... –