せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

【JavaScript 】関数もオブジェクト

 
■topic summary
study about Function object in JavaScript

 

関数もオブジェクト

なので、プロパティの読み書きができる

var p = function(obj){console.log(obj)};
function f(){};
f.foo = "FOO";
p(f.foo)  #<= FOO

 
 

「関数名」と「関数の表示名」

「関数の表示名」という表現は本書独自の用語です。一般的な関数名と区別するために敢て用語を分けます

ふむふむ。


■関数リテラル

var fn = function hoge(){}

とあるとき、
関数名 ・・・fn
関数の表示名 ・・・hoge


■関数宣言文

function hoge(){}

関数名 ・・・hoge
関数の表示名 ・・・hoge
 

関数宣言文の場合は、functionの後ろに書いた名前は関数名にもなるので表面上は区別できません

こうやって「関数名」の参照先を変更するとよく分かる。

function hoge(){};
var huga = hoge;
hoge = "jjjj";
huga;

■実行結果

function hoge(){}

ふむふむ。