私はクラスHuman
を持っており、クラスSocialBeing
はHuman
から継承したいと思っています。しかし、super(Human)
メソッドでは、Human
クラスは、最初の位置引数としてHuman
クラスインスタンスに渡され、それはクイズとエラーです。継承する正しい方法は何ですかSocialBeing
Human
からですか?coffescriptで引数付きのクラスを継承する方法は?
class Human # As biological creature
constructor: (@given_sex = null,
@age = null, # Age of the person
@max_age = 85) -> # Maximum allowed age of the person during person generation
_alive = true
alive: ->
@_alive
dead: ->
not @alive()
has_died: ->
@_alive = false
_available_sexes: {0: 'female', 1: 'male'}
sex: ->
_sex = @_available_sexes[@given_sex]
@generate_human()
generate_human: ->
@_alive = true
if @age is null
@age = Math.floor(Math.random() * @max_age)
if @given_sex is null
@given_sex = Math.floor(Math.random() * 2)
else if @given_sex not in [0,1]
n = @given_sex
err = 'Invalid sex value: ' + n
console.log(err)
throw new Error(err)
class SocialBeing extends Human # Describes socialisation
constructor: (@first_name = null,
@second_name = null,
@middle_name = null,
@other_name = null) ->
super(Human)
marital_status: null
h = new SocialBeing(first_name='Pal') # In JavaScript thows an error