Rumah >hujung hadapan web >tutorial js >Bagaimanakah anda mengurus pembolehubah kelas dalam kelas ES6 apabila ia tidak disokong secara asli?

Bagaimanakah anda mengurus pembolehubah kelas dalam kelas ES6 apabila ia tidak disokong secara asli?

Barbara Streisand
Barbara Streisandasal
2024-11-15 12:46:02545semak imbas

How do you manage class variables in ES6 classes when they are not natively supported?

Alternatif Pembolehubah Kelas dalam ES6

Dalam ES5, pembangun sering menggunakan corak yang selesa untuk mencipta kelas dan pembolehubah kelas, seperti yang ditunjukkan dalam perkara berikut kod:

// ES 5
FrameWork.Class({

    variable: 'string',
    variable2: true,

    init: function(){

    },

    addItem: function(){

    }

});

Walau bagaimanapun, dalam ES6, mencipta kelas secara asli tidak termasuk pilihan untuk mempunyai pembolehubah kelas, seperti yang ditunjukkan di bawah:

// ES6
class MyClass {
    const MY_CONST = 'string'; // <-- this is not possible in ES6
    constructor(){
        this.MY_CONST;
    }
}

Ini kerana kelas ES6 adalah terhad kepada kaedah yang mengandungi. Walaupun mungkin untuk menetapkan this.myVar dalam pembina, adalah tidak diingini untuk mengacaukan pembina, terutamanya dengan kelas yang besar.

Beberapa pendekatan telah dipertimbangkan untuk menangani isu ini, termasuk:

  • Mencipta pengendali ClassConfig: Hantar objek parameter kepada pengendali, yang diisytiharkan secara berasingan daripada kelas. Pengendali kemudian akan melampirkan ke kelas. WeakMaps berpotensi disepadukan untuk tujuan ini.
  • Cadangan peringkat 3: Cadangan ini membenarkan pengisytiharan pembolehubah dalam badan pengisytiharan/ekspresi kelas menggunakan sintaks varName = nilai. Ia dijangka akan menjadi usang pada masa hadapan.
  • Menetapkan pembolehubah pembina: Walaupun bukan penyelesaian yang sempurna, pembina(){ this.foo = bar } boleh digunakan untuk menetapkan pembolehubah contoh.
  • Pemula sifat ES7: Cadangan baharu untuk ES7 membolehkan pengisytiharan pembolehubah contoh yang lebih ringkas menggunakan pengisytiharan dan ungkapan kelas.

Atas ialah kandungan terperinci Bagaimanakah anda mengurus pembolehubah kelas dalam kelas ES6 apabila ia tidak disokong secara asli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn