Rumah > Artikel > hujung hadapan web > Berikut ialah beberapa pilihan tajuk yang mengikut garis panduan anda: Pilihan 1: Menekankan Masalah * Kelas ES6: Bolehkah Anda Memanggil Pembina Tanpa \'baharu\'? Pilihan 2: Fokus pada Penyelesaian * Workarou
ES6: Memintas Kata Kunci 'baharu' untuk Invokasi Pembina Kelas
Dalam ES6, pembina kelas berfungsi sebagai badan kelas itu sendiri . Walau bagaimanapun, adalah wajib untuk menggunakan kata kunci 'baharu' semasa memanggil kelas untuk membuat tika. Keperluan ini menimbulkan persoalan sama ada mungkin untuk memintas kata kunci 'baharu' semasa menggunakan pembina kelas.
Untuk memahami sebab asas di sebalik sekatan, adalah penting untuk menyelidiki sifat pembina kelas. Tidak seperti fungsi biasa, pembina kelas ialah bahagian intrinsik takrifan kelas dan sentiasa dilaksanakan apabila kelas dijadikan instantiated. Tingkah laku ini berpunca daripada kelas yang sememangnya merupakan pembina.
Oleh itu, percubaan untuk menggunakan kelas tanpa kata kunci 'baharu' mengakibatkan ralat berikut:
TypeError: Class constructors cannot be invoked without 'new'
Mesej ralat dengan tepat mencerminkan keperluan yang dikuatkuasakan.
Untuk mencapai kefungsian yang dikehendaki iaitu memanggil kelas tanpa kata kunci 'baharu', beberapa pendekatan boleh dipertimbangkan:
Pilihan 1: Menggunakan Fungsi Biasa
Daripada kelas, fungsi biasa boleh digunakan untuk mencapai tingkah laku yang serupa:
function Foo(x) { if (!(this instanceof Foo)) return new Foo(x); this.x = x; }
Pilihan 2: Menguatkuasakan Penggunaan Kata Kunci 'baharu' yang Konsisten
Menguatkuasakan penggunaan konsisten kata kunci 'baharu' semasa memanggil kelas kekal sebagai pilihan yang sah.
Pilihan 3: Membungkus Kelas
Sebuah pilihan biasa fungsi pembungkus boleh dicipta untuk mengendalikan kedua-dua invokasi 'baru' dan bukan 'baru' dengan sentiasa menggunakan kelas dengan kata kunci 'baru':
class Foo { constructor(x) { this.x = x; } } var _old = Foo; Foo = function(...args) { return new _old(...args) };
Dengan memahami mekanik pembina kelas dan meneroka pendekatan alternatif , pembangun boleh menavigasi nuansa seruan kelas ES6 dengan berkesan.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk yang mengikut garis panduan anda: Pilihan 1: Menekankan Masalah * Kelas ES6: Bolehkah Anda Memanggil Pembina Tanpa \'baharu\'? Pilihan 2: Fokus pada Penyelesaian * Workarou. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!