Object() peut être vu comme : var Object=new Function();
Le constructeur Array() peut être vu comme : var Array=new Function();
....Alors :
Function() Le constructeur peut être vu comme : var Function=new Function()?
Créez-vous ?
Il existe d'autres objets natifs similaires, Object.prototype, en tant qu'objet prototype ultime de la chaîne de prototypes, comment a-t-il été créé ? Est-il également créé par new Object() ? Mais Object.prototype ne devrait-il pas être le premier objet du système natif JS ?
J'ai l'impression de ne plus comprendre la pensée basée sur les prototypes de JS, s'il vous plaît, donnez-moi quelques conseils...
En fait, ce n'est pas un problème de poule et d'œuf. Tous les objets sont en fait des fonctions, y compris la fonction elle-même. Parlons d'abord du prototype. Le prototype est basé sur le constructeur et __proto__, et ces deux-là sont inclus dans le. prototype, et ces trois sont composés ensemble. Une fonction est créée, la chaîne de prototypes est basée sur la direction de __proto__ La chaîne de prototypes est ascendante et basée sur le principe de proximité. Elle recherche les attributs souhaités et forme un prototype. chain; donc js est un langage simulé, ce qui est aussi la différence essentielle entre lui et les autres langages !
Il existe une différence entre les objets (fonctions) qui peuvent être générés via new et tous les objets (fonctions) qui doivent être générés via new.
Une fonction, un objet, etc. peuvent être considérés comme fournis dans le processus d'implémentation de js. Je crois comprendre que pour implémenter la chaîne de prototypes, le navigateur leur ajoute
__proto__-->***.prototype
en fonction de l'implémentation de la chaîne de prototypes lors de leur fourniture. fonctions. Cela signifie que l'environnement js fournit plusieurs objets (fonctions) spéciaux, puis ces objets (fonctions) sont traités afin de ne pas violer les spécifications.Le premier est tout à fait correct, le second est ma compréhension.