很抱歉代码很长,但我的环境不支持脚本代码。
我尝试调用loadbang(第976行)并获取
_r.Multistrokes[z].name is undefined
我以为我在函数中定义了它,不是吗?
答案 0 :(得分:2)
您的Multistroke
构造函数(它不是“类”)在对象上设置Name
属性(第103行):
this.Name = name;
但是在第1000行,您正在尝试使用name
属性(请注意大小写的差异):
strokeName[z]=_r.Multistrokes[z].name.toString
JavaScript区分大小写。
旁注:第1000行还存在您实际上并未调用 toString
的问题,您将函数引用分配给strokeName[z]
。要实际调用,请将()
添加到toString
的末尾。
旁注2:代码在很大程度上依赖于JavaScript automatic semicolon insertion的憎恶。强烈建议不依赖它,并明确地输入所有必要的分号。依靠ASI使缩小变得困难,并且可能引入微妙的错误。
答案 1 :(得分:1)
在Multistrokes
中,您有Name
字段而非name
。
构造
function Multistroke(name, useBoundedRotationInvariance, strokes) // constructor
{
this.Name = name;this.Name = name;
[...]
}
访问:
strokeName[z]=_r.Multistrokes[z].name.toString