際際滷
Submit Search
defjs をひも盾く
?
1 like
?
1,217 views
Masafumi Oyamada
Follow
1 of 25
Download now
Downloaded 10 times
More Related Content
defjs をひも盾く
1.
def.js をひも盾く ゛オレ js
隈゛ id:mooz @stillpedant
2.
徭失B初 ? 兆念 C
mooz (Hatena, GitHub, ´) C stillpedant (Twitter, Google) ? 挫きな冱Z C Mozilla 狼 JavaScript ? 恬ったもの 除唹 C KeySnail (Emacs 井 Vimperator) C MiSPLi (Lisp I尖狼 in JavaScript) C その麿もろもろ しくは http://mooz.github.com/index-ja.html で
3.
def.js
4.
def.js ? http://github.com/tobeytailor/def.js ? Ruby
に貌た芝隈でクラス協吶と@覚が佩える
5.
サンプルコ`ド
6.
サンプルコ`ド
!?
7.
h苧 ? def (クラス兆)
(協x); C クラス協x C def ("Person") ({ ´ }); ? def (クラス兆) << 牌クラス(協吶); C Hクラスを峺協したクラス協x (@覚) C def (^Ninja") << Person({ ´ }); ? this._super(); C メソッド嶄から喘いる C Hクラスの揖兆メソッドを柵び竃し
8.
サンプルコ`ド (壅)
9.
書指のスライドの朕議 ? def.js の咾鮴軆發垢 ?
def (クラス兆) (協x); ? def (クラス兆) << 牌クラス(協吶); ? this._super();
10.
def (クラス兆) (協x);
11.
def (クラス兆) (協x); ?
def v方はv方 (deferred) を卦す ? def(^Person ̄) とすると C Person クラスが恬撹され (window.Person が 協xされる) C 仝協x (props) を聞って Person クラスを するv方々が卦る ? つまり def(^Person ̄)({ ´ }); とすると C Person クラスが協xされ, { ´ } を聞ってその クラスがされる ☆ ^ ̄ : メソッドやプロパティを協xすること
12.
def (クラス兆) <<
牌クラス(協吶);
13.
def (クラス兆) <<
牌クラス(協吶); ? 念峰の宥り def v方はv方 deferred を卦す ? このv方には valueOf というプロパティがO協 されている ? この valueOf がミソ
14.
valueOf ? オブジェクトをプリミティブ、QするHに
柵ばれる ? プリミティブ、豚棋される中にオブジェク トが竃くわしたとき徭啜弔忘瑤个譴
15.
valueOf の g佩すると, 1.
def(foo) called 2. def(bar) called 3. foo (valueOf) 4. bar (valueOf)
16.
def (クラス兆) <<
牌クラス(協吶); ? def v方は valueOf のO協されたv方 deferred を卦す ? def (クラス兆) << 牌クラス(協吶); とすると栽 で 3 指v方が柵ばれる def (クラス兆) Hクラス(協x) dererred.valueOf (def の卦り)
17.
def(^Ninja ̄) << Person({
´ }); def(^Ninja ̄) << Person({ ´ }); としたとき´´ def(^Ninja ̄) 1. Ninja クラスを恬撹 2. deferred.valueOf をO協 3. deferred を卦す def.js のコンテキスト坪でグロ`バル _super, _props をO協 deferred Person({ ´ }); def(^Ninja ̄) の卦した deferred に valueOf が O協されているので´´ 1. deferred の _super に Person をO協 2. deferred の _props に { ´ } をO協 deferred.valueOf 1. deferred の _props を聞い Ninja クラスを 2. deferred の _super を聞い Ninja のHクラスを Person にO協 (Ninja に _superClass プロパティをO協する)
18.
つまりは´´ ? A() 處麻徨
B() のとき 1. A() 2. B() 3. A の卦したオブジェクトの valueOf ? という桑で柵ばれてくれれば採でも措い ? << である駅勣來はoい C def(^Ninja ̄) >> Person({ ´ }); C def(^Ninja ̄) + Person({ ´ });
19.
this._super();
20.
_super(); ? v方の caller
プロパティを聞って _super の柵び竃し圷 メソッドを函誼. ? メソッドの _class プロパティによりクラスを函誼 ? クラスの _super プロパティによりHクラスを函誼 ? メソッドの _name プロパティによりメソッドの兆念を 函誼し, Hクラスの隔つ揖兆メソッドを柵ぶ
21.
_super() の聞う光プロパティ ? Klass.extend
rに弖紗 C メソッドの _name C メソッドの _class ? deferred.valueOf により弖紗 C クラスの _super ? JavaScript C arguments.callee ? そのv方徭附 ? JavaScript 掲 (ほぼ畠てのブラウザがg廾) C caller プロパティ ? そのv方を柵んだv方
22.
まとめ
23.
まとめ ? def (クラス兆)
(協x); C v方を卦すv方 ? def (クラス兆) << 牌クラス(協吶); C valueOf C << である駅勣なし ? this._super(); C arguments.callee.caller
24.
處麻徨オ`バ`ロ`ド圀しい
25.
Y創 ? def.js
C http://github.com/tobeytailor/def.js ? 晩云Zの盾hコメントをつけたコ`ド C https://gist.github.com/2ac889f4b0276ddf9586 ご床ありがとうございました
Download