日々精進

新しく学んだことを書き留めていきます

modelのコンストラクタにプロパティに代入するコードを書いてはいけない

下記のようなコードを書いたところ、モデルオブジェクトのattributesプロパティがundefinedになってしまった。

Backbone = require "backbone"
exports.Ohlc = class Ohlc extends Backbone.Model
  initialize: (attrs, options) ->
    @currencyPair = obj.currencyPair
    @bid = obj.bid
    @ask = obj.ask
    @high = obj.high
    @low = obj.low

下記のようにプロパティに代入するコードをやめたら直った。
なぜ。。まあ自動的に代入はしてくれるようなので自分ではやらないようにする。

Backbone = require "backbone"

exports.Ohlc = class Ohlc extends Backbone.Model
  initialize: (attrs, options) ->

参考:convert javascript object to model in backbone - Stack Overflow

追記:
これ、Setメソッド経由で代入すればいいだけですね。。ここまでBackboneを忘れているとはおはずかしい。