"Cannot read property" [日本]



还有很多问题和解决方案,但我似乎找不到问题的答案。

  1. 目标:这是我的自定义垃圾编程语言的lexer
  2. 预期:advance函数将更改值
    实际:不会
  3. 错误:无法读取"undefined"的属性长度

我尝试过的:
修复错误,更改函数代码,查找它。
!编辑:错误在第87行
代码(小片段(:

class Lexer {
constructor(text) {
this.text = text;
this.pos = -1;
this.current_char = 'None';
}
advance() {
this.pos += 1;
if (this.pos < this.text.length) { //this is line 87
this.current_char = this.text[this.pos];
} else {
this.currenct_char = 'None';
}
}

问我是否需要更多代码。

实例化对象时,构造函数参数text未定义,因此this.text也未定义。您可能忘记了参数text,或者变量send-to-constructor未定义。

因此,当您调用方法advance()时,它无法访问this.text.length上的属性长度,因为this.text是未定义的。

相关内容

最新更新