2013-05-27 41 views
-1

尝试实例化另一个对象的构造函数方法内的对象时出现奇怪的错误。CoffeeScript:在实例化构造函数中的对象时出错

编辑3

例如(有图片):

这里的JavaScript的

enter image description here

这里的编译CoffeeScript的

enter image description here

+0

@TJCrowder:我猜他的意思是[this](http://coffeescript.org/#try:class%20MyClass%0A%20%20constructor%3A%20-%3E%0A%20%20%20 %20%40object%20%3D%20new%20obj()%0A%20%20%20%20%40foo%20%3D%20%5B%5D%0A%20%20%20%20%40bar%20 %3D%20%5B%5D),但它仍不会生成他发布的输出。 Connor,请向我们展示一个演示此行为的完整示例。 – Bergi

+2

您问题中的缩进不是您的CoffeeScript中的缩进。你的'@ foo'和'@ bar'赋值与'constructor'处于同一级别,它们不在里面;参见[this example](http://coffeescript.org/#try:class%20MyClass%0A%20%20constructor%3A%20-%3E%0A%20%20%20%20%40object%20%3D%如果你不相信我,那么20%(20%)20%40%20%3D%20%40%20%3D%20%20%40%20%40%20%3D%20% –

+0

你确定你的示例CoffeeScript不缺少'extends'吗? –

回答

2

您可能有错误的缩进。只有@object = new obj()被认为属于constructor代码,并且以下行将成为构造函数本身的属性。

如果你看不到,那么你的代码中可能有非空白或非制表符。还要确保你只使用标签空白,而不是(如mu is too short指出),它们的组合。

在javascript中有一个对象作为另一个对象的成员数据是不好的编程习惯吗?

绝对不是,特别是因为函数也是对象。几乎所有的JSON或XML数据都嵌套在一起。什么让你觉得这可能是一个不好的做法?

+0

啊,[像这样](http://coffeescript.org/#try:class%20MyClass%0A%20%20constructor%3A%20-%3E%0A%20%20%20 %20%20%20%20%20%40object%20%3D%20new%20obj()%0A%20%20%40foo%20%3D%20%5B%5D%0A%20%20%40bar%20 %3D%20%5B%5D)。很好的接收。 –

相关问题