4

プロパティ フィールド変数を使用してオブジェクトを簡単に作成する方法はありますか?

変数があり、この例でBackbonePROP.Todo.PRIORITY = 'priority'を使用してこのプロパティを保存したいとします。新しいオブジェクトを作成し、変数に割り当ててからプロパティを設定する必要がないようにするにはどうすればよいでしょうか?

私はこれを達成したい:

var tmpObj = {};
tmpObj[PROP.Todo.PRIORITY] = "high";
this.model.save(tmpObj);

私はこのようなことを試みましたが、失敗しました:

this.model.save(({}[PROP.Todo.PRIORITY] = "high"));

助言がありますか?それ以外の場合は、長いオブジェクト宣言をたくさん書くつもりです。

4

2 に答える 2

4

パラメータを 1 つだけ保存する場合、Model.save引数を受け取る別の方法があります。(key,value,options)

http://backbonejs.org/#Model-save

save model.save([attributes], [options])
[...] set と同様に、ハッシュの代わりに個々のキーと値を渡すことができます。[...]

つまり、例を次のように書くことができます

this.model.save(PROP.Todo.PRIORITY, "high");

複数のプロパティを同時に保存する場合は、一時オブジェクトを作成する必要があります。

于 2012-07-04T10:05:55.227 に答える
2

オブジェクトを簡単に作成する方法が必要な場合は、ヘルパー関数を使用してみませんか?

function obj(prop, value) {
  var o = {};
  o[prop] = value;
  return o;
}

this.model.save(obj(PROP.Todo.PRIORITY, "high"));

あなたの質問の後半部分を理解しているかどうかわかりません:

それ以外の場合は、多くの一時オブジェクトを作成します。

いずれにせよ、オブジェクトを作成する必要があります。オブジェクトの作成がパフォーマンスの問題になるとは思えません。

于 2012-07-04T10:06:41.443 に答える