Knockout.js/observable関数

提供: MonoBook
ナビゲーションに移動 検索に移動

knockout.jsobservable関数(observableオブジェクト)とは、knockout.jsビューモデルの変更を検出するためにもちいる監視オブジェクトである。

なお、JavaScriptでのオブジェクトの実体は関数なので、クラスベースオブジェクト指向に慣れている人には気持ち悪い記述かもしれないが、慣れろ。

セッターメソッド[編集 | ソースを編集]

observableオブジェクトにを設定するには、引数に値をセットして呼び出す。 いわゆるセッターメソッドに相当する。

var AppViewModel = function() {
  var name = ko.observable("knockoutjsさん"); // これ
};

なお、このセッターメソッド戻り値は、自らのobservableオブジェクトなのでメソッドチェーン的な書き方もできる。

// こういう記述は
myViewModel.name("jqueryさん");
myViewModel.age(6);
// こういう風にも書ける。
myViewModel.name("jqueryさん").age(6);
// 誰得。

ゲッターメソッド[編集 | ソースを編集]

observableオブジェクトが保持しているを取得するには、引数をつけずに呼び出す。 いわゆるゲッターメソッドに相当する。

var AppViewModel = function() {
  var name = ko.observable("knockoutjsさん");
};
var myViewModel = new AppViewModel();

// これ
// 括弧が必要な点に注意すること。
var hogehogehoge = myViewModel.name();

備考[編集 | ソースを編集]

なお、本来のJavaScriptではC#のプロパティ構文とほぼ同じアクセサメソッドが用意されており(get構文およびset構文)、本来であればもっと簡潔明瞭に書けるはずだったが、一部のクソブラウザ(IE8とかIE8とかIE8、なおIE9には付いたらしいよ)がゲッターセッターをサポートしていないクソ仕様なせいでこのような書式になったそうだ。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]

外部リンク[編集 | ソースを編集]