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

TypeScript中通过索引获取Game类数组推入元素的值无效问题

解决Game类中fontArray索引访问失效的问题

先看你提供的Game类代码,fontArray在构造函数里已经push了"large",但你说通过索引访问这个元素失效,我帮你梳理几个最可能的原因和解决办法:

  • 没有正确创建类实例:如果只是导入了Game类,但没通过new Game()创建实例,构造函数里的push操作根本没执行,fontArray还是空数组。正确的用法应该是:

    const game = new Game();
    console.log(game.fontArray[0]); // 这里应该能输出"large"
    
  • 错误访问了类而非实例:fontArray是实例属性,不是静态属性。如果你的fontSizeHandle逻辑里直接写了Game.fontArray[0],那肯定拿不到——必须通过具体的Game实例来访问,比如gameInstance.fontArray[0]。

  • 数组被意外覆盖:检查fontSizeHandle或者其他代码里有没有重新给fontArray赋值(比如this.fontArray = []),如果把原来的数组替换成空数组了,自然索引访问不到元素。

  • 时序问题:如果fontSizeHandle在Game实例初始化完成前就运行了,那构造函数里的push还没执行。比如在前端组件的生命周期钩子过早的阶段调用,得确保实例已经创建完成。

给你一个结合fontSizeHandle的正确示例:

// 假设你的处理函数是这样的
function fontSizeHandle(gameInstance: Game) {
  const targetFont = gameInstance.fontArray[0];
  if (targetFont === "large") {
    // 这里写你的处理逻辑,比如调整字体大小
    gameInstance.fontsize = "5vw";
  }
}

// 创建实例后再调用处理函数
const myGame = new Game();
fontSizeHandle(myGame);

如果还是解决不了,建议把fontSizeHandle的完整代码贴出来,这样能更精准定位问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:29:02