ES Harmony Proxy on Firefox 4

3,167
-1

Published on

ES Harmony Proxy on Firefox 4

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,167
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

ES Harmony Proxy on Firefox 4

  1. 1. ES Harmony Proxy on Firefox 4 id:mooz @stillpedant
  2. 2. About mooz (@stillpedant) Add-ons: KeySnail Emacs 版 Vimperator Clipple クリップボードマネージャ gpum Gmail の未読メール管理 See http://mooz.github.com/index-ja.html
  3. 3. What’s the ES Harmoney? ECMAScript 3 ECMAScript 4 ECMAScript 5 ECMAScript Harmoney 未来の JavaScript
  4. 4. What’s the Proxy? • プロパティアクセス (代入, 取得) • in 演算子の適用 • delete 演算子の適用 • new F(), F() などの操作がされた時, JavaScript 規定の動作ではなく “ユーザの設定した関数” が呼び出されるようなオブジェクト ES Harmoney (未来の JavaScript) の機能
  5. 5. • Proxy の作成には Proxy.create() を使用 Proxy.create() ハンドリング時に呼ばれる関数ハンドルしたい操作
  6. 6. Example (1/3) var x = obj.x; get が呼ばれ name に “x” が入る.
  7. 7. Example (2/3) obj.y = 100; set が呼ばれ name に “y”, val に 100 が入る.
  8. 8. Example (3/3) (“foo” in obj) has が呼ばれ name に “foo” が入る.
  9. 9. Proxy for? Q: 「こんなものが何の役に立つの?」 A: 「組み込みオブジェクトを模倣できるよ」 B: 「DSL! DSL!」 夢が広がる
  10. 10. Proxy on Firefox 4 • Firefox 4 では Proxy が使用可能
  11. 11. Use cases • 二つほど使用例をでっち上げることに成功 1.not 2.safe
  12. 12. 1.not
  13. 13. • あるオブジェクト (親含む) が, あるプロパティを持たない場合に実行したい 嬉しくない Why not?
  14. 14. • obj を Proxy でラップ • obj に対する in 演算子の効果を反転 嬉しい! not(obj)
  15. 15. not :: Before & After Before: After:
  16. 16. not (implementation) 時に呼ばれる関数 結果を反転して返す
  17. 17. 2. safe
  18. 18. • 深いオブジェクトのプロパティをたどりたい – プロパティが途中で定義されていなかったりする – null や undefined が出てきたりする • 単純に obj.a.b.c と出来ない やってられない Why safe?
  19. 19. 嬉しい! safe(x) • x を Proxy でラップ • . の代わりに $ を使ってプロパティをたどる • 安全
  20. 20. safe :: Before & After Before: After:
  21. 21. safe (implementation) このProxy オブジェクトの get メソッドに という文字列が渡る で文字列を分割して 得られたプロパティを順にたどる (この中に面倒な処理を隠蔽)
  22. 22. Proxy 便利
  23. 23. でも、 Firefox 4 限定でしょ?
  24. 24. 宗教上の理由で Firefox 使えないし……
  25. 25. ご安心下さい
  26. 26. node-proxy https://github.com/brickysam26/node-proxy
  27. 27. References [[harmony:proxies]] http://wiki.ecmascript.org/doku.php?id=harmony:proxies Proxy Tutorial http://soft.vub.ac.be/~tvcutsem/proxies/index.html Proxies are Awesome! http://www.slideshare.net/BrendanEich/metaprog-5303821 ご清聴ありがとうございました
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×