Les modifications apportées par les décorateurs au comportement d'une classe se produisent lorsque le code est compilé, pas au moment de l'exécution. Cela signifie que les décorateurs peuvent exécuter du code lors de la compilation. En d’autres termes, le décorateur est essentiellement une fonction exécutée au moment de la compilation.
J'ai les questions suivantes :
La citation ci-dessus dit : 修饰器对类的行为的改变,是代码编译时发生的,而不是在运行时
,这句中的编译时
、运行时
、发生
Que signifient-ils ?
修饰器本质就是编译时执行的函数
,这里的执行
和问题一中的发生
Est-ce que ça veut dire la même chose ?
Où les modificateurs sont-ils généralement utilisés ?
L'explication dans le livre est plutôt vague. Pourriez-vous s'il vous plaît l'expliquer en détail ? Merci beaucoup !
Le temps de compilation peut être grossièrement compris comme le moment où le moteur JS convertit le code en opérations que la machine peut exécuter avant que le code ne commence à s'exécuter. En d’autres termes, ce processus ne peut pas être perturbé au moment de l’exécution car il est terminé avant de commencer à s’exécuter.
Le temps d'exécution fait référence au moment où les opérations que la machine peut exécuter commencent à s'exécuter après la compilation de votre code, c'est-à-dire lorsque les éléments que vous écrivez passent des opérations de la machine aux éléments que vous pouvez réellement voir sur l'ordinateur.
En ce qui concerne l'occurrence, il n'y a pas de signification particulière, cela signifie que ces changements sont terminés lorsque le moteur JS convertit le code en opérations machine.
L'exécution et l'occurrence peuvent être grossièrement considérées comme la relation entre la cause et l'effet. Changement, la collocation générale du verbe est « arriver », fonction, la collocation générale du mot est « exécution ». L'occurrence met l'accent sur le contraste entre l'état avant et après, c'est-à-dire que parce que quelque chose s'est produit, l'après est différent de l'avant. L'exécution, en revanche, se concentre sur le processus. Effectuer une opération, c'est refaire chaque étape de l'opération, sans délibérément prêter attention aux différences avant et après. Par conséquent, voici le modificateur = la fonction exécutée au moment de la compilation. Le résultat de l'exécution de cette fonction est que le comportement de la classe change.
Comme mentionné ci-dessus, il s'agit d'un changement du comportement de classe, les modificateurs sont donc généralement utilisés pour modifier les méthodes et les attributs d'une classe lorsqu'elle est déclarée.
Pour parler franchement, le code est généralement divisé en une étape de compilation et une étape d'exécution. Vous pouvez comprendre que l'étape de compilation analyse le code dans une arborescence, et lorsqu'il s'agit de l'étape d'exécution, il est exécuté selon l'arborescence. formé par compilation. Vous pouvez rechercher core-decorators.js sur github. Cette bibliothèque est un exemple de décorateur.