coffeescript我如何实例化属性

时间:2015-12-24 18:09:24

标签: arrays class coffeescript

class Foo
  list: []
foos = []
for i in [1..2]
  foos.push new Foo
foos[0].list.push "a"
foos[1].list.push "a"
console.log foos[0].list
console.log foos[1].list

此代码输出为:

["a", "a"]
["a", "a"]

但我不明白为什么输出不是:

[""] [""]

似乎foos [k] .list是静态参数!

1 个答案:

答案 0 :(得分:1)

是的, TypeError: list indices must be integers, not str 值在所有foo实例中共享。

如果你看一下生成的JS,它对你有意义吗?

list

如果我理解正确,也许这是解决问题的有效方法:

Foo = (function() {
  function Foo() {}

  Foo.prototype.list = [];

  return Foo;

})();