我想在if語句中使用@Type
,但它好像不識別@Type
。有沒有辦法獲得@Type
以便我可以在超類中使用它?如何訪問Coffeescript擴展類中的屬性?
class opponent
constructor: (ID, Level, Name) ->
@ID = ID
@Level = Level
@Name = Name
@Health = if @Level is 1
@Level * 5
else if 2 <= @Level <= 4
(@Level * 6) - (@Level * 2)
@Luck = if @Type is "Snake"
Math.ceil(@Level * 1.25) + 5
else
Math.ceil(@Level * 1.25)
@attackDamage = 0
@defenseDoubled = false;
@Poisoned = false;
@Burned = false;
@Frozen = false;
@defend: ->
@Defense *= 2
@DefenseDoubled = true;
@undefend: ->
@Defense /= 2
@DefenseDoubled = false;
class Snake extends opponent
@Type: "Snake"
爲什麼'Snake'沒有設置@ @ Health'本身?父類不應該知道任何可能的擴展。 – hpaulj
@hpaulj我試圖避免這種情況,因爲我會製造更多的類從對手擴展,但我想這可能會更容易做到 – LukeK
'@Type:「Snake」'line(借用Java術語)靜態變量。如果你希望它是非靜態的,你可以使用'Type:「Snake」'。你有沒有這樣做的理由? –