それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

function(){} と new Function

Function を使って関数を作る

Function のコンストラクタを使って関数を作る

var a = new Function("c", "return c");
a(1) //=>1

使い方

new Function ( 引数, 引数,,,, 関数本文)

ポイントは、全てを文字列で渡す点にある。

function(c){ return c } // おなじ

同じだが、文字列をeval せずに関数オブジェクトを作れる点が違う。eval と同等ですけどね。

apply/ call も出来る

Function コンストラクタが function を作るfunction であることに注目すると

apply

var a = Function.apply(null, ["c", "return c"])
a(1) //->1

call

var a = Function.call(null, "c", "return c")
a(1) //->1

のようなこともできるが、あまり使わない。function がなにか考えるのにちょうどいい。