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

TypeScript获取Player类name属性时触发栈溢出错误求助

无限递归导致栈溢出的问题修复

问题根源

你的Player类里,name的getter和setter实现犯了典型错误:在getter里返回this.name,setter里赋值this.name = value——这会触发无限递归调用。

举个例子,当你调用player.name时,会触发get name()函数,而函数里的this.name又会再次调用这个getter,循环往复直到调用栈被耗尽,最终抛出RangeError: Maximum call stack size exceeded。

修复方案

把getter和setter里的操作对象改成私有字段_name即可,这样就不会触发自身的访问器:

// lib/player.ts
export class Player {
    private _name: string;

    constructor(name: string) {
        this._name = name;
    }

    public get name() { return this._name; }
    public set name(value: string) { this._name = value; }
}

测试验证

修改后运行index.ts,就能正常输出预期结果:

import { Player } from './lib/player';

const player = new Player('name');
console.log(player.name); // 输出: name

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:32:33