メインメニューを開く

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には付いたらしいよ)がゲッターセッターをサポートしていないクソ仕様なせいでこのような書式になったそうだ。

関連項目編集

参考文献編集

外部リンク編集