🧊

Backbone.Collection.get()がよくわからない

単に私がよくわかってないだけな可能性もありますが。

参考:Backbone.js

これを見る限り、

getcollection.get(id)
Get a model from a collection, specified by an id, a cid, or by passing in a model.

で、

var book = library.get(110);

と。

2014/06/05: 追記しました。

だがしかし

// ...
var id = 1;
this.collection.get(id); // NG
this.collection.get('c'+id); // OK
// ...

ん・・?
これはそういう使い方をするものなのかしら?

そもそも実装が

// Get a model from the set by id.
get: function(obj) {
  if (obj == null) return void 0;
  return this._byId[obj.id] || this._byId[obj.cid] || this._byId[obj];
},

でもこの this._byId ってオブジェクトの中身は、

{
  c1: child,
  c2: child,
  c3: child,
  c4: child,
  c5: child,
// ..
}

ってな具合にぜんぶ c ってプレフィックスがついてて!

これは取れない気がするんやけど、なんか見落としてんのかなー・・。
そして引数にid/cidを持った何かのインスタンスを渡すシーンも想像できないんやけども。

ちなみに、Backboneはv1.1.0です。

追記

せっかくコメントいただいたので、追記します!
モデルにある**idAttribute**ってのを設定すると、それがモデルをユニークに指定するキーになります。
なので、Collection.getで指定されるキーは、この**idAttribute**で指定したやつになる・・と。

コメントに詳しい例を頂いたので、それ見るとなるほどなーってなります。
ありがたやありがたや。