讓我們說我有這個類中的CoffeeScript:通過用戶選擇迭代和CoffeeScript的
class Human
constructor: (options) ->
if options
for property of options
opts[ property ] = options[ property ]
printName: ->
console.log 'My name is ' + opts.name
opts =
name: 'foo'
如果我是打印出來過,我會的對象的多個實例的name屬性總是得到相同的值:
a = new Human({name: 'bob'})
b = new Human({name: 'john'})
// a.printName() -> john
// b.printName() -> john
但我要單獨保存每個實例的值,如:
// a.printName() -> bob
// b.printName() -> john
現在我知道我必須使用this.name
,但是如何使用方法遍歷一長串值並將它們分配給對象實例?我不想污染這樣
constructor: (@name, @surname, @age, ...)
如果您將@opts作爲參數傳遞給構造函數,它確實可行!謝謝 – Ozrix 2013-03-07 14:31:30
我編輯了我的答案!請仔細查看變量聲明。你不需要傳遞任何'@ opts'。 – Amberlamps 2013-03-07 14:34:33
這不適合我,輸出總是'約翰'。不是所有實例共享的原型? – Ozrix 2013-03-07 14:43:13