CodeGeeX 的 /fixbug 指令可精准定位原型链断裂根源,如构造函数缺 new、prototype 被覆盖或 extends 中断,并提供修复方案及验证方法。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在 VSCode 或 IntelliJ IDEA 中写 JavaScript 时,对象方法突然报 TypeError: xxx is not a function,而这个方法本该从原型链继承而来,说明原型链已断裂——这时用 CodeGeeX 的 /fixbug 指令能直接定位构造函数调用缺失 new、prototype 被覆盖或 extends 链中断等根源问题,无需手动逐行排查。
触发 fixbug 指令的两种方式
方法一:快捷键唤出灯泡菜单
将光标置于报错行(如 obj.doSomething()),按 Alt+Enter → 选择“使用 CodeGeeX 修复”。【必须确保当前文件已保存,未保存状态下 CodeGeeX 无法读取完整 AST】
方法二:右键选中后调用
手动选中整段出问题的代码(包括对象声明和后续调用),右键 → “Ask CodeGeeX → Fix Bug”。模型会返回精准诊断,例如:“obj 实例未继承自 MyClass,因构造函数未用 new 调用,导致 this 指向全局对象”。
CodeGeeX 2.21.0是智谱AI推出的AI编程助手版本,对Inline Chat功能进行了重大优化,包括UI设计升级、支持流式输出以提升响应速度,并新增“查看思路”按钮以便理解代码原理。同时,该版本在编辑器中新增CodeLens控件,支持一键“解释”代码或“添加注释”。目前该工具对个人开发者免费开放。
修复构造函数调用缺失 new
第一步:将光标放在构造函数调用处(如 const inst = MyClass())
第二步:按 Alt+Enter → 选择“使用 CodeGeeX 修复”
第三步:查看预览 —— CodeGeeX 会高亮显示应改为 const inst = new MyClass() 的位置,并标注“否则 this 绑定失效,原型方法不可访问”
恢复被覆盖的 prototype 属性
搜索项目中所有 Constructor.prototype = {} 或 Constructor.prototype = Object.create() 的写法。这类直接赋值会清空原有方法,导致下游实例丢失方法。
选中整条覆写语句(例如 MyClass.prototype = { init() {} };),右键 → “Ask CodeGeeX → Fix Bug”,选择推荐方案:Object.assign(MyClass.prototype, { init() {} })。执行后检查 MyClass.prototype.toString 等内置方法是否恢复可访问。
验证修复是否生效
在终端运行 console.log(obj.__proto__ === MyClass.prototype),若返回 true,说明实例已正确关联原型。
若返回 false,需检查构造函数内部是否意外重写了 this.__proto__ 或使用了 Object.create(null) —— 这种操作会彻底切断原型链,CodeGeeX 在解释时会特别警告“此对象无继承链,hasOwnProperty 等原生方法亦不可用”。

















