我有一堆javascript“类”(原型),它们构成了我正在构建的web应用程序的继承层次结构。我一直在尝试将这些类组织成“命名空间”:
var UI = {
Control: Class.create(KVO.Object,
{
...
})
}这些类被组织到单独的文件中,所以当我想要向UI添加一个类时,我在一个单独的文件中完成了这项工作:
UI.TextFieldControl = Class.create(UI.Control,
{
...
})但是,当我尝试在包含文件后在程序中使用UI.TextFieldControl时,它是未定义的。我猜这是某种作用域问题,因为在TextFieldControl文件中定义了它,但据我所知,UI.TextFieldControl应该在包含它之后定义;我做错了什么?
发布于 2009-07-22 16:01:20
好了,我找到了问题所在;我将定义UI的文件包含了两次,一次是在定义UI.TextFieldControl的文件之前,一次是在之后。谢谢你的回复;我开始担心我根本不理解javascript作用域!
发布于 2009-07-21 22:24:14
你有没有尝试过使用FireBug?因为根据您提供的代码,似乎没有任何错误。如果你的文件包含都没问题的话。应该定义您的控件。
TextFieldControl之后,你的UI.Control被加载了?如果您的UI命名空间包含所有必需的类,您还可以看到它,并尝试手动定义它们,看看会发生什么。TextFieldControl...丢弃整个文件
https://stackoverflow.com/questions/1162033
复制相似问题