javascript - “无法读取属性” [JS]
问题描述
再次,有很多问题和解决方案,但我似乎无法找到我的问题的答案。
- 目标:这是我的自定义垃圾编程语言的词法分析器。
- 预期:高级功能会改变值
实际:不会。 - 错误:无法读取“未定义”的属性长度。
我尝试过的:
修复错误、更改功能代码、查找它。
!编辑:错误在第 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
或发送到构造函数的变量未定义。
因此,当您调用 method 时advance()
,它无法访问属性长度,this.text.length
因为this.text
未定义。
推荐阅读
- javascript - 如何使用 jQuery 在 JavaScript 中查询 Wikidata
- apache-kafka - 如果未调用 commitSync(),如何避免 poll() 检索相同的消息
- xml - xsl:template 显示变量值
- javascript - 如何在 JS 中记下与幂 -1 的切线
- java - 查询包括 OneToMany 在内的特定字段失败
- typescript - 我应该如何在 ormconfig.json 中指定 DATABASE_URL?
- java - 将字符串转换为 BigDecimal
- azure - 将来自不同资源的 Azure Monitor 图表组合到一个图表中
- visual-studio - 将 c++ 项目包含在 Visual Studio 2015 中不同解决方案的另一个 c++ 项目中
- powershell - 在 Powershell 中停止服务时是否有绕过依赖服务的功能?