私はCoffeeScriptで簡単なサブクラス化をしようとしています
class List
items: []
add: (n) ->
@items.push(n)
console.log "list now has: #{@}"
toString: ->
@items.join(', ')
class Foo extends List
constructor: ->
console.log "new list created"
console.log "current items: #{@}"
問題:
a = new Foo() # []
a.add(1) # [1]
a.add(2) # [2]
b = new Foo() # [1,2]
# why is b initializing with A's items?
b.add(5) # [1,2,5]
# b is just adding to A's list :(
ただし、クラスのインスタンスは、プロパティFoo
の独自のコピーを保持していません。items
期待される結果:
b = new Foo() # []
b.add(5) # [5]
jsフィドル
便宜上提供されるコード スニペット