javascript未定义变量 - 看起来不像吗?

时间:2012-01-23 08:52:11

标签: javascript

很抱歉代码很长,但我的环境不支持脚本代码。

http://pastebin.ca/2105293

我尝试调用loadbang(第976行)并获取

_r.Multistrokes[z].name is undefined

我以为我在函数中定义了它,不是吗?

2 个答案:

答案 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