Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mencipta Objek Secara Dinamik dalam JavaScript ES6 Menggunakan Objek Kelas?

Bagaimana untuk Mencipta Objek Secara Dinamik dalam JavaScript ES6 Menggunakan Objek Kelas?

Barbara Streisand
Barbara Streisandasal
2024-11-15 19:25:02120semak imbas

How to Create Objects Dynamically in JavaScript ES6 Using Class Objects?

Mencipta Objek Secara Dinamik dalam JavaScript ES6

Kesukaran membina objek daripada nama kelas menggunakan ES6 boleh dihadapi apabila menggunakan pendekatan tradisional. Artikel ini bertujuan untuk menyelesaikan isu ini dan menyediakan kaedah yang berkesan untuk mencipta objek secara dinamik menggunakan sintaks ES6.

Coretan kod sebelumnya cuba menggunakan kilang untuk mencipta objek berdasarkan nama kelasnya. Walau bagaimanapun, ralat berlaku kerana merujuk kelas melalui 'tetingkap' objek global.

Untuk mengatasinya, disyorkan untuk menyimpan objek kelas itu sendiri dan bukannya nama mereka dalam objek 'specColumn' kilang. Ini memastikan bahawa kelas boleh diakses tanpa bergantung kepada mereka yang tersedia secara global.

Selain itu, menukar kilang kepada objek dan bukannya kelas mungkin lebih sesuai memandangkan senario penggunaan seperti tunggal. Berikut ialah kod yang dikemas kini:

export class Column {}
export class Sequence {}
export class Checkbox {}

export const columnFactory = {
    specColumn: {
        __default: Column,    // <-- Class object
        __sequence: Sequence, // <-- Class object
        __checkbox: Checkbox  // <-- Class object
    },
    create(name, ...args) {
        let cls = this.specColumn[name] || this.specColumn.__default;
        return new cls(...args);
    }
};

Dengan melaksanakan pengubahsuaian ini, ia menjadi mungkin untuk mencipta objek secara dinamik menggunakan sintaks ES6.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Objek Secara Dinamik dalam JavaScript ES6 Menggunakan Objek Kelas?. 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