タグ

クロージャに関するtksthdnrのブックマーク (4)

  • 無名関数を使った非同期通信のススメ(JavaScript)

    ここ最近はブラウザーの上で動く思いっきりRIAなアプリケーションを書いている私。こと通信の部分になると JavaScript での開発効率が、C++/Java/Objective Cなどと比べて格段に高いことをつくづく感じている毎日なので、今日は、そのあたりを少し解説してみようかと思う。 サーバーのAPIにアクセスするプログラムを書く方法は色々とあるが、「サーバー上の特定のURLにHTTPでアクセスして結果をXMLやHTMLやJSONで受け取る」というケースに限定すれば、基的に3つのパターンに分けられる。 1. 同期通信 result = urlfetch.fetch("http://www.google.com/") if result.status_code == 200: doSomethingWithResult(result.content) その書きやすさのために、実務経験の

  • Python Hack : 噛めば噛むほどおいしくなるクロージャの話

    最近 JavaScript を書く機会が増えているが、それに従って自分のコーディングスタイルが少しづつだが変化してきているのが分かる。もともと「コードの読みやすさ」や「実行効率」にとことんこだわるタイプだが、(JavaC++になくて)JavaScriptRubyにあるクロージャや無名関数が私のコーディングスタイルにとてもマッチしているからだと思う。 簡単な例を紹介しよう。Pythonで書かれた config.py というモジュール。config.yamlという設定ファイルを読み込んで Dictionary として返す config.get() という関数。普通に実装すると、以下のような感じになる。 import yaml _config = None def get(): global _config if not _config: data = open('config.yaml')

  • [JavaScript]僕、スコープとかクロージャとか曖昧でした | ブログが続かないわけ

    Douglas Crockford, 水野 貴明 ¥ 1,890 手っ取り早く習得 痒いとこだけ掻いてくれる JavaScriptを勉強しなおすのにとってもよいです。 JavaScript コアに関する最高の 付録を除くと100ページちょいという、とてもライトなですが、内容は濃密です。JavaScript の中で、一番わかりにくいだろうなと思われるようなところが集中的に解説されているように感じられ、勉強したてでかつそろそろわかりかけてきたなーと思い始めていた僕にとって、最適の一冊でした。知って良かったなと思えるところがたくさんありましたので、これから少しずつ紹介して行きたいと思いますが、今日はその中でも特に印象的だった、変数のスコープにまつわるお話をしてみたいと思います。 変数のスコープはその変数が宣言された関数の中だけに限定されます。なんとなく知ってはいたのですが、for 文とかでは

    [JavaScript]僕、スコープとかクロージャとか曖昧でした | ブログが続かないわけ
    tksthdnr
    tksthdnr 2009/10/23
    O'reiley Javascript The Good Parts
  • 連載:Ajax時代のJavaScriptプログラミング再入門「クロージャの仕組みを理解する」

    クロージャの仕組みを理解する スコープについて理解したところで、稿最後のテーマとして「クロージャ」について触れておくことにしよう。クロージャとは、ひと言でいうならば、「ローカル変数を参照している関数内関数」のこと。 もっとも、これだけの説明ではなかなかイメージがわきにくいと思うので、具体的にクロージャを利用したコードを1つ挙げてみよう。 function myClosure(init) { var cnt = init; return function() { return ++cnt; } } var result = myClosure(10); [A] window.alert(result()); // 11 [B] window.alert(result()); // 12 [C] window.alert(result()); // 13 [D] 一見すると、myClosur

    連載:Ajax時代のJavaScriptプログラミング再入門「クロージャの仕組みを理解する」
  • 1