2012-06-10 82 views
0

我有以下的CoffeeScript代碼:的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: Property 'x' of object #< Object> is not a function

,它只是:

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

即使它成爲一個更通用的GameObject的孩子......我嘗試了一些重新安排,使其工作,但所有入侵。不確定它是否與CoffeeScript或JavaScript相關。官方網站上的「嘗試CoffeScript」的東西在這裏沒有錯誤。瀏覽器是鉻...這裏有什麼問題,我如何克服這一點?

回答

5

你錯過了逗號的分隔參數:

super (p5 opts.x opts.y) 

應該

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

否則,該行解釋爲super(p5(opts.x(opts.y))),因此 「不是一個函數」 的錯誤。