我在CoffeeScript中有一些类,它继承自另一个类。链看起来像这样:
Page
ChooserPage
YesNoChooserPage
CommentPage
SimplePage
这很好用,但是当我尝试向ChooserPage链中引入一个级别,特别是MultipleYesNoChooserPage extends YesNoChooserPage
时,我突然收到错误:
Uncaught TypeError: Cannot read property 'prototype' of undefined
我检查了类的存在并得到了以下结果:
Page
存在ChooserPage
存在YesNoChooserPage
不存在(未定义)MultipleYesNoChooserPage
不存在(显然是未定义的)比较: 没有定义MultipleYesNoChooserPage:
CoffeeScript是否有一些我不知道的最大限制(并且找不到任何内容)或者还有其他原因吗?
按正确的顺序加载类。
答案 0 :(得分:1)
好的,我得到了解决方案,这是偶然发生的。
在尝试重现这一点时,我注意到它不会发生在项目之外。因为它让我更加困惑(我的意思是,一个类的简单存在如何让另一个消失)我完全删除了文件并重新创建它。它奏效了,让我的困惑升到难以理解的程度。然后它让我感到震惊:
要强制加载文件的顺序,它们的名称相当奇怪。在这种情况下,这就是YesNoChooserPage和MultipleYesNoChooserPage被命名为:
我的编辑器(Sublime Text)按照预定的顺序列出它们,但我注意到,终端没有。当我重新创建文件时,我不小心将其命名为“YzMultipleYesNoChooserPage”,导致不同的顺序。然后就行了。
了解了另一件事。