2012-06-10 2 views
0

나는 다음과 같은 커피 스크립트 코드를 가지고 다른 곳커피 스크립트 - 슈퍼 생성자에 인수를 전달하는 문제

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 시도"는 오류가 없습니다. 브라우저가 Chrome ... 여기에 무엇이 잘못되었으며 어떻게이 문제를 극복합니까?

답변

5

당신은 인수를 쉼표로 구분이 누락 :

super (p5 opts.x opts.y) 

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

그렇지 않으면, 그 선은 super(p5(opts.x(opts.y)))로 해석됩니다, 따라서 "함수가 아닌"오류해야한다.