タグ

クロージャに関するtakata3のブックマーク (6)

  • 【JavaScriptの基礎】レキシカルスコープとクロージャを理解する | WEMO

    JavaScriptを理解する」第3回です。今回は「クロージャ」というものをメインに勉強してきました。 また、クロージャを理解するためには、JavaScriptで採用されているスコープについても詳しく知っておく必要がありそうだったので、そちらも併せて勉強しました。 まずはスコープについて触れてから、クロージャについて学んだことをまとめていこうと思います。 JavaScriptのスコープ まずはJavaScriptで採用されているスコープ方式についてまとめていこうと思います。 スコープとは そもそも、スコープとはなんだ?と調べてみると、 IT用語辞典 さんでは以下のように定義されていました。 スコープとは、プログラム中で変数名などのシンボルが参照可能な有効範囲のこと。 宣言した変数やオブジェクト・関数などをどこまでの範囲で呼び出したりすることができるのか?という領域がプログラミング言語によ

    【JavaScriptの基礎】レキシカルスコープとクロージャを理解する | WEMO
  • Pythonのデコレータを理解するための12Step - Qiita

    古い記事なんですが, Pythonのデコレータの概念をつかむには良記事だったので和訳意訳してみました. http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/ Step1. 関数 これは基ですね. Pythonにおいて関数はdefキーワードにより関数名とパラメータのリスト(任意)とともに定義できます.また括弧付きで名前を指定することで実行できます. Step2. スコープ Pythonでは関数を作ると新しいスコープが作られます.言い方を変えるとそれぞれの関数がそれぞれに名前空間を持つということです. Pythonではこれらを確認することのできる組み込み関数も用意されていて, locals()で自身の持つローカルな名前空間の値を辞書形式で返却します.

    Pythonのデコレータを理解するための12Step - Qiita
  • クロージャってどんなときに使うの? ~ 利用場面を 3つ 挙げてみる - Qiita

    結論を先にまとめると、以下の3つです。 1. グローバル変数の宣言をなるべく減らしたい場合 2. ユーザが引数を与えてカスタマイズ可能な自由度の高い「関数」を生成したい場合 3. 前回、呼び出されて実行されたときの演算結果(値)を内部で保存して、次に呼び出されたときに、前回の結果(値)に対して、さらに同じ処理(演算)を行う関数を生成したい場合 以下、「クロージャ」の定義から、頭の整理まで、分かりやすい参考ウェブサイトへのリンクを張りつつ、見ていきます。 【 定義 】クロージャ takeharuさん Qiita記事(2013/07/22)「JavaScriptでクロージャ入門」 「自分を囲むスコープにある変数を参照できる関数」 Wikipedia 「クロージャ」 引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決することを特徴とする。関数とそれを評価する環

    クロージャってどんなときに使うの? ~ 利用場面を 3つ 挙げてみる - Qiita
  • OpenVPN - Gosuke Miyashita

  • クロージャと高階関数

    Javascriptには関数式と呼ばれるものがあります。関数式は数値や文字列のようにプログラムにリテラルとして書かれた関数です。

  • なぜクロージャ(Closure)と言うのか? - Qiita

    クロージャはわかりづらい。 なんでかと言うと、以下の2つです。 名前 定義がよくわからない Wikipediaさんなんかで調べると。 クロージャ(クロージャー、英: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数で実現している。 関数閉包!! 関数閉包、意味不明すぎる。なんかこの字面が意味分からなくしようとしているような気配すら感じる。(とはいえ、じゃあどんな名前が良いかと言えば、わかりませんし。それに一般的には「クロージャ」で通っていますから、別にいいのですが。) 関数ヘイホウってなに?初めてクロージャを学ぶような僕は、もう、むしろ笑えます。ちなみに、その先の「関数オブジェクトの一種」とか「ラムダ式」なんかも知りません。 けど、JavaScriptのクロージャの事例は、とても分かりやすい。 関数の中に関数があります。

    なぜクロージャ(Closure)と言うのか? - Qiita
  • 1