首頁 > web前端 > js教程 > 如何在 JavaScript ES6 中動態實例化物件?

如何在 JavaScript ES6 中動態實例化物件?

Linda Hamilton
發布: 2024-12-05 11:18:14
原創
951 人瀏覽過

How to Dynamically Instantiate Objects in JavaScript ES6?

JavaScript ES6 中的動態物件實例化

問題陳述

在 ES6 中使用舊式語法從類別名稱建立物件會導致錯誤。以下程式碼會引發錯誤:

let className = this.specColumn[name] ? this.specColumn[name] : this.specColumn['__default'];
return new window[className](name);
登入後複製

解決方案

要解決此問題,請從指定物件中刪除類別名,然後使用類別本身。這消除了對透過視窗物件進行全域存取的依賴。此外,工廠可以簡化為一個對象,因為它通常只實例化一次。

程式碼修復

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

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

此程式碼將類別直接儲存在specColumn物件中,允許動態使用 create 方法實例化物件。

以上是如何在 JavaScript ES6 中動態實例化物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板