この記事は、knockout.js Advent Calendar 2015の2日目の記事です。 先に1日目に目を通すことを推奨しています。
knockout , knockout-es5 , knockout.punches環境を想定しています。
knockoutのViewModelの要件はとてもシンプルです。
要件は、
- ViewModelがObjectであること
だけです。
この手のライブラリ・フレームワークにありがちな、オレオレクラス(たとえば Ember、React、Vue)の独自実装方法を__勉強しなくてOK__です。
ViewModelがObjectであればいいだけなので、
script.js
var vm = {
myName: "山田",
age: 1
};
このように、Objectリテラルを用いて書いてもいいですし、
script.js
function VM(){
this.myName= "山田";
this.age= 1;
};
このように、Functionとしても書けます。
このため、ECMAScript6,ES2015や、TypeScriptなどのAltJSと相性がとてもいいです。
これをTypescriptのClassで書くと
class VM{
public myName="山田";
public age=1;
}
となります。