メインメニューを開く

差分

Knockout.js/computed関数

2,352 バイト追加, 2012年4月13日 (金) 06:32
ページの作成:「knockout.jsの'''computed関数'''(computedオブジェクト)とは、セッターで設定された関数内で使われている[[knockout.js/observableオ...」
[[knockout.js]]の'''computed関数'''(computedオブジェクト)とは、セッターで設定された関数内で使われている[[knockout.js/observableオブジェクト|observableオブジェクト]]がひとつでも更新されると、自動的に計算をおこない、まるで[[knockout.js/observableオブジェクト|observableオブジェクト]]と同じように振る舞う監視関数(オブジェクト)である。

== 記述例 ==
この例は、[[knockout.js/observableオブジェクト|observableオブジェクト]]である firstName または lastName のどちらかが更新されると、fullNameも自動的に更新されるというものである。
<source lang="javascript">
var AppViewModel = function() {
var self = this;

self.firstName = ko.observable('mono');
self.lastName = ko.observable('mono');

// firstNameまたはlastNameが更新されると自動的に
// fullNameも更新される。
self.fullName = ko.computed(function() {
return self.firstName() + " " + self.lastName();
});
};
</source>

computed関数は、ビュー(HTML)での各種バインディングで[[knockout.js/observableオブジェクト|observableオブジェクト]]と同じよう扱える。
<source lang="html5">
私の名前は<span data-bind="text: fullName"></span>です。
</source>

なお、この例においてAppViewModelオブジェクト内でthis変数をself変数に代入している意味について謎な人は「[[JavaScript/this]]」や「[[クロージャー]]」、「[[高階関数]]」など項目を参照。[[JavaScript]]や[[Python]]に精通している人には説明不要だろうが、[[C Sharp|C#]]や[[Java]]しか知らない人は「this」の扱いに特に注意する必要がある。


== 関連項目 ==
* [[knockout.js]]
** [[knockout.js/applyBindings関数|applyBindings関数]]
** [[knockout.js/observable関数|observable関数]]([[knockout.js/observableオブジェクト|observableオブジェクト]])
** [[knockout.js/observableArray関数|observableArray関数]]([[knockout.js/observableArrayオブジェクト|observableArrayオブジェクト]])
** [[knockout.js/computed関数|computed関数]]
** [[knockout.js/subscribe関数|subscribe関数]]
== 参考文献 ==
<references/>
== 外部リンク ==

{{stub}}
匿名利用者