Maison  >  Article  >  interface Web  >  Processus d'exécution des compétences JavaScript function_javascript

Processus d'exécution des compétences JavaScript function_javascript

WBOY
WBOYoriginal
2016-05-16 09:00:211848parcourir

1. Chaque fonction JavaScript est une instance de l'objet Function, qui possède une propriété interne [[Scope]] qui n'est accessible qu'au moteur JavaScript. Scope]] stocke une collection de portées, appelée "chaîne de portée". La collection stocke le "objet variable" VO ou "l'objet actif" AO (AO a plus d'attributs this et arguments que VO).

2. Lorsqu'une fonction est créée, tous les objets mutables dans la chaîne de portée de sa portée parent seront ajoutés à sa [[portée]] (si la portée parent est global, alors un seul objet global sera ajouté à la chaîne de portée de la fonction actuelle).

3. Lorsque la fonction est exécutée, l'environnement d'exécution de la fonction sera poussé dans une pile d'environnement :

1. À ce stade, nous entrons dans la phase d'initialisation des variables de la fonction. Cette phase déterminera les éléments internes de la fonction : cette valeur, les paramètres de la fonction, la déclaration de la variable et les arguments. L'objet actif AO de la fonction actuelle est formé. L'objet AO sera ensuite enregistré en haut de la chaîne de portée de la fonction actuelle.

Remarque : AO est rempli dans l'ordre suivant :

1. Paramètres de fonction (s'il y a des paramètres passés, des valeurs leur seront attribuées, si aucun paramètre n'est passé, la valeur initiale n'est pas définie), la deuxième priorité
2. La déclaration de fonction (si un conflit de nom survient, elle sera écrasée) a la priorité la plus élevée
3. Déclaration de variable (initialisez la valeur de la variable à undefined, si un conflit de nom survient, il sera ignoré) Troisième priorité
2. Vient ensuite l'étape d'exécution de la fonction. À ce stade, toutes les variables et déclarations de fonction utilisées dans la fonction actuelle seront recherchées dans la chaîne de portée [[Scope]] de la fonction actuelle. la chaîne de portée, ils seront d'abord recherchés. Si l'objet AO de la fonction actuelle ne recherche pas l'objet de niveau supérieur, il trouvera finalement l'objet global. S'il n'y en a pas, une erreur sera signalée (la variable est. indéfini).

Le processus d'exécution de la fonction JavaScript ci-dessus est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence et j'espère que vous soutiendrez Script Home.

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