ホームページ >ウェブフロントエンド >Vue.js >es6 クラスには変数プロモーションがありますか?
#この記事の動作環境: Windows 10 システム、Vue バージョン 2.9.6、DELL G3 コンピューター。 es6 クラスには変数プロモーションがありますか?クラスには変数プロモーションがありませんES6 はクラス宣言をコードの先頭にプロモートしないため、クラス宣言をコードの先頭にプロモートする必要があります。最初に定義してから使用します。 しかし、ES5 は異なります。ES5 には変数プロモーションがあり、最初に使用してから定義できます。ES6 クラスには変数のプロモーションがありません。 es5ではクラスの変数昇格があり、これを使ってからクラスを定義することもできますが、es6ではクラスの宣言が先頭に昇格されず、定義で先に使用するとエラーになりますと報告されるため、先に使用してから定義することはできません es6 のクラス 変数の昇格はありません。
// ES5可以先使用再定义,存在变量提升 new A(); function A(){ } // ES6不能先使用再定义,不存在变量提升 会报错 new B(); // B is not defined class B{ }ES5とは全く異なり、クラス内に変数ホイスト(ホイスト)がありません。
new Foo(); // ReferenceError class Foo {}上記のコードでは、ES6 Foo クラスが最初に使用され、後で定義されていますが、ES6 はクラス宣言をコードの先頭に上げないため、エラーが発生します。この規定の理由は、後述する継承に関係しており、サブクラスは必ず親クラスの後に定義する必要があるためです。
{ let Foo = class {}; class Bar extends Foo { } }Bar が Foo を継承するとき、Foo はすでに定義されているため、上記のコードはエラーを報告しません。ただし、クラスの昇格がある場合、クラスはコードの先頭に昇格されますが、let コマンドは昇格されないため、上記のコードはエラーを報告します。そのため、Bar が Foo を継承する場合、Foo は定義されていません。 [関連する推奨事項:「
vue.js チュートリアル 」]
以上がes6 クラスには変数プロモーションがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。