Rumah > Artikel > hujung hadapan web > Adakah kelas es6 mempunyai promosi berubah-ubah?
Kelas ES6 tidak mempunyai promosi berubah-ubah. Terdapat promosi berubah-ubah dalam kelas dalam es5 Anda boleh menggunakannya dahulu dan kemudian menentukan kelas Dalam es6, pengisytiharan kelas tidak akan dinaikkan pangkat Jika anda menggunakannya dalam definisi dahulu, ralat akan dilaporkan . Oleh itu, anda tidak boleh menggunakannya dahulu dan kemudian menentukan kelas es6 Tiada promosi berubah.
Persekitaran pengendalian artikel ini: sistem Windows 10, versi Vue 2.9.6, komputer DELL G3.
Kelas tidak mempunyai promosi berubah-ubah
Oleh kerana ES6 tidak mempromosikan pengisytiharan kelas kepada kepala kod, ia perlu ditakrifkan dahulu sebelum menggunakannya.
Tetapi ES5 adalah berbeza ES5 mempunyai promosi berubah-ubah, yang boleh digunakan dahulu dan kemudian ditakrifkan.
// ES5可以先使用再定义,存在变量提升 new A(); function A(){ } // ES6不能先使用再定义,不存在变量提升 会报错 new B(); // B is not defined class B{ }
Kelas tidak mempunyai pengangkat boleh ubah (hoist), yang berbeza sama sekali daripada ES5.
new Foo(); // ReferenceError class Foo {}
Dalam kod di atas, kelas ES6 Foo digunakan dahulu dan ditakrifkan kemudian. Ini akan menyebabkan ralat kerana ES6 tidak akan mempromosikan pengisytiharan kelas kepada ketua kod. Sebab bagi peruntukan ini adalah berkaitan dengan warisan yang dinyatakan di bawah. Ia adalah perlu untuk memastikan bahawa subkelas ditakrifkan selepas kelas induk.
{ let Foo = class {}; class Bar extends Foo { } }
Kod di atas tidak akan melaporkan ralat, kerana apabila Bar mewarisi Foo, Foo sudah ditakrifkan. Walau bagaimanapun, jika terdapat promosi kelas, kod di atas akan melaporkan ralat, kerana kelas akan dinaikkan pangkat kepada ketua kod, tetapi perintah let tidak dipromosikan, jadi apabila Bar mewarisi Foo, Foo belum ditentukan.
[Cadangan berkaitan: "tutorial vue.js"]
Atas ialah kandungan terperinci Adakah kelas es6 mempunyai promosi berubah-ubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!