JavaScriptにおける変数としての関数
さて、前のレッスンでは、括弧なしで関数を参照すると、 そのソースコードが取得されることを確認しました。
実際には、もっと興味深いことがあります。JavaScriptでは、 他の言語とは異なり、関数は数値、文字列、配列と同様に、 変数の値として扱われます。
例を見てみましょう。例えば、関数 func があるとします:
function func() {
console.log('!');
}
実際には、関数 func があるわけではありません。
関数のソースコードを格納している変数 func があるのです。
例えば、変数 func を他のもの、例えば文字列で
上書きすることもできます。その場合、 func は
もはや関数ではなく、文字列になります。
以下の例を参照してください:
function func() {
console.log('!');
}
func(); // '!' を出力
func = 'string'; // 変数 func を上書き
console.log(func); // 'string' を出力
return を通じて何らかの文字列を返す関数
func を作成してください。
関数 func の実行結果をコンソールに
出力してください。
関数 func のソースコードをコンソールに
出力してください。
変数 func に数値 123 を代入し、
それによってこの変数内の関数を上書きしてください。
変数 func の新しい値をコンソールに
出力してください。