有时候我会写这样的JS类:
mylib.Container = function() {
var things = [];
// Returns the index of the image added
this.addItem = function(item)
{
things.push(item)
}
}
...
var c = new mylib.Container();
c.addItem(whatever);
我使用“构造函数范围”的闭包变量(如things
)来避免this
范围问题,我也在紧密循环中使用它们(就像requestAnimationFrame
中使用的那样)。这些变量永远不会渗透到创建的对象的外部。
有没有办法在CoffeeScript中创建和使用这些变量?我知道我的@ivar
符号比this
短,但有些东西告诉我,关闭var
可能会更快...... {/ p>
答案 0 :(得分:0)
在您的代码中,您在构造函数中分配函数。你也可以用咖啡做到这一点
myLib.container = ->
things = []
@addItem = (item) -> things.push item
this
或者确实想要使用类语法
class myLib.container
constructor: ->
things = []
@addItem = (item) -> things.push item