JavaScript面白い(分からない)

クロージャ・無名関数の話

一章第四回 オブジェクトと関数 — JavaScript初級者から中級者になろう — uhyohyo.net http://uhyohyo.net/javascript/1_4.html

九章第五回 クロージャ — JavaScript初級者から中級者になろう — uhyohyo.net http://uhyohyo.net/javascript/9_5.html

クロージャ - JavaScript | MDN https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Closures

javascriptを理解するためのたった2つの大切なこと:改 http://anond.hatelabo.jp/20070622101313

オブジェクト指向の話

JavaScriptのクラス?コンストラクタ?? - Qiita http://qiita.com/takeharu/items/010752b1427773558f7c

九章第一回 オブジェクト指向とは — JavaScript初級者から中級者になろう — uhyohyo.net http://uhyohyo.net/javascript/9_1.html

九章第二回 prototypeの活用 — JavaScript初級者から中級者になろう — uhyohyo.net http://uhyohyo.net/javascript/9_2.html

thisの話

JavaScriptの「this」は「4種類」?? - Qiita http://qiita.com/takeharu/items/9935ce476a17d6258e27

JavaScriptのthisの覚え方 http://qiita.com/vvakame/items/74005adacc0e8e2a3cab

JavaScript - じゃあ this の抜き打ちテストやるぞー - Qiita http://qiita.com/KDKTN/items/0b468a07410d757ac609

applyとcallの使い方を丁寧に説明してみる - あと味 http://taiju.hatenablog.com/entry/20100515/1273903873

その他

三章第三回 イベントバブリング — JavaScript初級者から中級者になろう — uhyohyo.net http://uhyohyo.net/javascript/3_3.html

や...やっと理解できた!JavaScriptのプロトタイプチェーン - maeharinの日記 http://d.hatena.ne.jp/maeharin/20130215/javascript_prototype_chain

JavascriptとKnockout.jsの入門をしている.

進捗は以下をご覧ください(2014年12月6日現在動かない)

MIPS To Hexadecimal - MIPS命令を16進数表記に直すよ - http://asakuradev.web.fc2.com/MTH/

日本語ドキュメント読んでて,しょっぱなから「????」ってなった.

まず,Knockout.jsの一番大事な機能のObservableを見た.

Observable (ViewModelをつくる) | Knockout.js 日本語ドキュメントhttp://kojs.sukobuto.com/docs/observables

/* javascript */
var myViewModel = {
    personName: ko.observable('ボブ'),
    personAge: ko.observable(123)
};
ko.applyBindings(myViewModel);
<!-- HTML -->
お名前: <span data-bind="text: personName"></span>

まだ分かる.myViewModelというオブジェクトを作って,プロパティにko.observableというおまじないをしてあげて,ko.applyBindingsというおまじないにmyViewModelを生贄に捧げると,ビューとモデルが連動するようになるんだ!

Computed Observable | Knockout.js 日本語ドキュメント http://kojs.sukobuto.com/docs/computedObservables

例えば、次のような ViewModel クラスがあるとします。

function AppViewModel() {
    this.firstName = ko.observable('ボブ');
    this.lastName = ko.observable('スミス');
}

まって,ビューモデルが関数になってる.

AppViewModelの所に関してはバインディングの所は例が提示されていません.

さっきの例に習ってこう書くと動きません

ko.applyBindings(AppViewModel);

カッコを付けてみる

ko.applyBindings(AppViewModel());

動いた.関数オブジェクトを渡すのではなく,関数を呼び出している?

これも動く

ko.applyBindings(new AppViewModel());

Javascriptの勉強からしないといけなさそう.

一章第四回 オブジェクトと関数

関数はオブジェクト!ちょっと特殊なオブジェクト!関数名はオブジェクトの参照!

これは普通に出来る.

var a = {};
a.abc = function(){
    alert("test");
}
a.abc() /* testとアラートされる. */

これは出来ない

var a = {};
function a.abc(){
    alert("test");
}

これは出来る

var a = {};
function abc(){
    alert("test");
}
a.abc = abc; 
a.abc() /* testとアラートされる. */
a.bcd = abc(); /* これは単に関数が実行される */

↑このページのトップヘ