0

私は次のCoffeeScriptコードを持っています:

planet = new Planet p5, {x: 100, y: 100, diameter: 20}

そしてどこか他の場所:

class GameObject
  constructor: (@p5, @x, @y) ->
    @selected = false

class Planet extends GameObject
  constructor: (p5, opts) ->
    super (p5 opts.x opts.y)
    @diameter = opts.diameter

そしてsuperそれが言う行のために:

Uncaught TypeError:オブジェクト#<Object>のプロパティ'x'は関数ではありません

そしてそれがちょうどだったときそれは大丈夫だった:

class Planet
  constructor: (p5, opts) ->
    @x = opts.x
    @y = opts.y
    @diameter = opts.diameter
    @selected = false

つまり、それをより一般的な子にする前にGameObject...私はそれを機能させるためにいくつかの再配置を試みましたが、すべて無駄です。CoffeeScriptとJavaScriptのどちらに関連しているかわからない。公式ウェブサイトの「CoffeScriptを試す」ことは、ここでエラーを発見しません。ブラウザはChromeです...ここで何が問題になっていますか?これを克服するにはどうすればよいですか?

4

2 に答える 2

5

引数を区切るためのコンマがありません。

super (p5 opts.x opts.y)

する必要があります

super (p5, opts.x, opts.y)

それ以外の場合、その行はと解釈されるsuper(p5(opts.x(opts.y)))ため、「関数ではありません」というエラーが発生します。

于 2012-06-10T20:03:48.340 に答える
2

ただ欲しくない

super p5, opts.x, opts.y

エラーなしで実行されているコードへのリンクは次のとおりです。

于 2012-06-10T20:03:30.340 に答える