我有以下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
行,它说:
未捕获的TypeError:对象#<的属性'x'对象>不是一个功能
当它只是:
时没关系class Planet
constructor: (p5, opts) ->
@x = opts.x
@y = opts.y
@diameter = opts.diameter
@selected = false
即。在让它成为一个更通用的GameObject
的孩子之前...我已经尝试了一些重新安排来使它工作,但所有的都重新开始。不确定它是否与CoffeeScript或JavaScript有关。官方网站上的“尝试CoffeScript”事情在这里没有发现任何错误。浏览器是Chrome ...这里有什么问题,我该如何克服这个问题?
答案 0 :(得分:5)
您缺少逗号来分隔参数:
super (p5 opts.x opts.y)
应该是
super (p5, opts.x, opts.y)
否则,该行被解释为super(p5(opts.x(opts.y)))
,因此“不是函数”错误。
答案 1 :(得分:2)