0
我有兩個班,一個持有並管理數據和一個使基於數據對象沒有被引用傳遞(CoffeeScript的)
module.exports = class Data
constructor:() ->
@stuff =
foo: 42
bar: 'something'
,並在另一個文件
module.exports = class Mutator
constructor: (Data) ->
@foo = Data.foo
決定並在一個主文件中
Data = require './Data'
Mutator = require './Mutator'
module.exports = class Main
constructor:() ->
@data = new Data()
@mutator = new Mutator(@data)
我遇到的問題是,@data
似乎並沒有過去通過參考
在主
console.log @Mutator.foo # 42
@data.foo = '24'
console.log @Mutator.foo # still 42
什麼引起該D?
如果'foo'是一個對象'{}'並且我像這樣傳遞了它,'@mutator = new Mutator(@ data.foo)',然後像這樣設置'@foo = foo',它會起作用嗎? – Loourr
只要人們說'@data.foo.x = 6'而不是'@data.foo = {x:6}',這樣引用就不會改變。 –