0

時々私は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ます。これらの変数は、作成されたfubjectの外側にブリードすることはありません。

CoffeeScriptでそのような変数を作成して使用する方法はありますか?@ivar私はより短い表記法を持っていることを知っていますが、クロージャーにアクセスすることはまだ速いかもしれないthisと何かが私に言っています...var

4

1 に答える 1

0

コードでは、コンストラクターで関数を割り当てています。あなたはコーヒーでもそれをすることができます

myLib.container = ->
  things = []

  @addItem = (item) -> things.push item

  this

または、クラス構文を本当に使用したい場合

class myLib.container
  constructor: ->
    things = []
    @addItem = (item) -> things.push item
于 2013-03-26T11:14:25.147 に答える