You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何将类变量正确初始化为空数组?

问题根因

你当前的写法定义的是实例属性,仅会挂载到类的实例对象上,直接通过类名Test访问的是类静态属性,因此返回undefined。

解决方案

分两种场景匹配你的需求:

场景1:需要每个类实例单独持有空数组默认值

保持构造函数的默认参数写法即可,访问时先创建类实例再读属性:

class Test {
    constructor(myArray = []) {
        this.myArray = myArray;
    }
}

// 正确访问方式
const test1 = new Test();
console.log(test1.myArray); // 输出 []

// 支持传入自定义数组初始化
const test2 = new Test([1,2,3]);
console.log(test2.myArray); // 输出 [1,2,3]

该写法下每个实例的myArray相互独立,修改不会互相影响。

场景2:需要类本身持有全局共享的空数组默认值

使用static关键字声明类静态属性即可直接通过类名访问:

class Test {
    static myArray = [];
}

console.log(Test.myArray); // 输出 []

注意:静态属性为全环境共享的引用值,任意位置修改Test.myArray都会全局生效。

内容的提问来源于stack exchange,提问作者GriffsAccount

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:54:03