![Ruby の Proc オブジェクトと Method オブジェクトの違い (proc, lambda, ブロック, メソッドについて) - vivid memo](https://cdn-ak-scissors.b.st-hatena.com/image/square/2985b59f312a6b8fcddbc8bb53d23af45f453bc8/height=288;version=1;width=512/https%3A%2F%2Fimages-fe.ssl-images-amazon.com%2Fimages%2FI%2F41CGDEMgyoL._SL160_.jpg)
0. 目次 JavaScript, Haskell, Python でネストした関数を定義する Ruby でネストしたメソッドは定義できるが、変数のスコープに注意 内部スコープから、外部スコープを参照できない トップレベルに定義したメソッドの所属先は Object ネストしたメソッドの所属先は、外側のメソッドと同じクラス 1. JavaScript, Haskell, Python でネストした関数を定義する 2 つの値を足し合わせる関数を定義したい。 a. JavaScript JavaScript で書くなら、 function sum(x, y){ return x + y; }; sum(1, 2); //=> 3 JavaScript では、ネストした関数を定義できる。 JavaScript Reference - MDN の入れ子の関数とクロージャ によると、 関数の内部に関数
関数本体の定義とそれを評価するための環境を合わせてクロージャと呼ぶ. クロージャの概念を用いれば,オブジェクト指向プログラミングの基本要素であるオブジェクトを作成することができる. オブジェクトとは,簡単に言えば,メンバ変数(フィールド)といわれるデータとそれを操作するためのメンバ関数(メソッド)をまとめた部品のようなものである. 各フィールドのスコープはオブジェクト内に局所化され,それらにアクセスするためには必ずメソッドを用いることになる. つまりオブジェクト内部のデータは予め指定された方法でのみ操作され,プログラムの他の部分から予期せぬ形で影響を受けることがない. こうすることによって,オブジェクトの内部構造がブラックボックス化され,オブジェクトを,ある機能を提供するプログラムの抽象的な部品として,その詳細な実現方法に左右されることなく利用することができるようになる. ここでは環境モデ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く