#coffeescript
#coffeescript
Вопрос:
Я не уверен, все ли сказано в названии.
Что я пытаюсь сделать, так это создать суперкласс (или более или менее абстрактный класс), который затем используется другим классом, который расширяется из суперкласса.
Теперь, что я сделал, это создал простой скрипт:
class Animal
constructor: (@name, @sound) ->
setSound: (@sound) ->
sound: ->
alert "#{@sound}!!!"
name: ->
alert "#{@name}"
class Dog extends Animal
constructor: (@name) ->
@setSound "Woof"
doggy = new Dog "Max"
doggy.sound()
Как вы можете видеть — это всего лишь дерьмовый пример, но что происходит, когда я сейчас вызываю doggy.sound()
, я получаю TypeError в ответ.
Вы можете увидеть этот скрипт в действии здесь:http://jsfiddle.net/zrVZb/1 /
Я делаю что-то неправильно или это даже ошибка в coffeescript?
редактировать: я только что увидел, что это contructor
и не construct
. Но теперь вместо этого я получаю ошибку типа.
Спасибо
Ответ №1:
Ваш метод вызван sound
. Но затем вы передаете атрибут с тем же именем, который перезаписывает этот метод. Попробуйте переименовать свой метод sound в makeSound :