2015-07-01から1ヶ月間の記事一覧
引数を複数とる関数から、いくつかの引数を固定値で束縛した新たな関数を生成する。これにより、関数を使うたびに同じ値の引数を入力する手間が省け、見た目も簡潔なプログラムになる。 カリー化とは、複数の引数を取る関数を、1つの引数のみを取る関数のチ…
jsのthisは、ある関数が呼び出されたときに、その関数を格納していたObjectを指す。 js how does "this" work? 関数を単にfunc();という形で単体で実行した場合、thisにはwindowが入る。 new演算子のthis jsのnewは任意の関数と一緒に呼び出すことができる。…
jsは(ES6より前は)クラスを持たないオブジェクト指向言語である。クラスの代わりに、プロトタイプというプロパティを作り、そのプロパティを複数のインスタンスで共有する。そのためプロトタイプベースのオブジェクト指向言語といわれている。 jsの全てのオ…
jsが持つ関数スコープを利用してクロージャー(関数閉包)を書くことができる。 js closure 上記の例では、関数countの中のローカル変数iを参照できるのは、無名関数が入っている変数xを実行したときのみである。変数iをグローバル変数にすると他の関数からの…
jsのローカルスコープは関数内のみを参照できることであり、グローバルスコープはscriptのどこからでも参照できることを指す。ローカルスコープを持つ変数をローカル変数、グローバルスコープを持つ変数をグローバル変数という。 スコープは変数が定義された…
jsはプロトタイプベースのオブジェクト指向言語と呼ばれているが、関数型言語の性質も持ち合わせている。 第一級オブジェクト(first-class object)と第一級関数(first-class function) 第一級オブジェクトとは、プログラムにおいて、生成、代入、演算、(引…