我在CoffeeScript中有几个类,它们是从另一个类继承的。链看起来像这样:Page
ChooserPage
YesNoChooserPage
CommentPage
SimplePage
这可以很好地工作,但是当我尝试向ChooserPage链,特别是MultipleYesNoChooserPage extends YesNoChooserPage
引入另一个级别时,突然出现错误:
Uncaught TypeError: Cannot read property 'prototype' of undefined
我检查了类的存在,并得到以下结果:
Page
存在ChooserPage
存在YesNoChooserPage
不存在(未定义)MultipleYesNoChooserPage
不存在(显然是未定义的)比较:
没有定义MultipleYesNoChooserPage:
定义了MultipleYesNoChooserPage:
CoffeeScript是否有一些我不知道(也找不到任何东西)的最大限制,或者有其他原因吗?
类以正确的顺序加载。
最佳答案
好的,我得到了解决方案,这是偶然发生的。
在尝试重现此内容时,我注意到它不在项目外部发生。因为它使我更加困惑(我的意思是,一个类的简单存在如何使另一个消失),我完全删除了文件并重新创建了它。它奏效了,这使我的困惑上升到了一个难以理解的程度。然后它打动了我:
为了强制加载文件的顺序,它们被命名为奇数。在这种情况下,YesNoChooserPage和MultipleYesNoChooserPage的命名如下:
是的否ChooserPage.coffee
YZMultipleYesNoChooserPage.coffee
我的编辑器(Sublime Text)按预期顺序列出了它们,但是我注意到,终端没有。重新创建文件时,我不小心将其命名为“ YzMultipleYesNoChooserPage”,从而导致顺序不同。然后工作了。
学会了另一件事。
关于javascript - 第三级继承无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37006316/