Maison >interface Web >Voir.js >La classe es6 a-t-elle une promotion variable ?
Les classes ES6 n'ont pas de promotion variable. Il y a une promotion de variable dans la classe dans es5. Vous pouvez d'abord l'utiliser puis définir la classe. Dans es6, la déclaration de la classe ne sera pas promue en tête. Si vous l'utilisez d'abord dans la définition, une erreur sera signalée. .Par conséquent, vous ne pouvez pas l'utiliser d'abord, puis le définir.es6 Classe Il n'y a pas de promotion variable.
L'environnement d'exploitation de cet article : système Windows 10, Vue version 2.9.6, ordinateur DELL G3.
La classe n'a pas de promotion variable
Étant donné que ES6 ne promeut pas la déclaration de classe en tête du code, elle doit d'abord être définie puis utilisée.
Mais ES5 est différent. ES5 a une promotion variable, qui peut être utilisée d'abord puis définie.
// ES5可以先使用再定义,存在变量提升 new A(); function A(){ } // ES6不能先使用再定义,不存在变量提升 会报错 new B(); // B is not defined class B{ }
Les classes n'ont pas de levage variable (hoist), ce qui est complètement différent de l'ES5.
new Foo(); // ReferenceError class Foo {}
Dans le code ci-dessus, la classe ES6 Foo est utilisée en premier et définie plus tard. Cela provoquera une erreur car ES6 ne promouvra pas la déclaration de classe en tête du code. La raison de cette disposition est liée à l'héritage mentionné ci-dessous. Il faut s'assurer que la sous-classe est définie après la classe parent.
{ let Foo = class {}; class Bar extends Foo { } }
Le code ci-dessus ne signalera pas d'erreur, car lorsque Bar hérite de Foo, Foo est déjà défini. Cependant, s'il y a une promotion de classe, le code ci-dessus signalera une erreur, car la classe sera promue en tête du code, mais la commande let n'est pas promue, donc lorsque Bar hérite de Foo, Foo n'a pas été défini.
【Recommandation associée : "Tutoriel vue.js"】
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!