IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

関数のプロパティ

関数にはnameプロパティがある。
var foo = {
  var : function(){} // 無名関数で、fooオブジェクトのvarプロパティに紐づいている
}
console.log(foo);
console.log(foo.var);
console.log(foo.var.name);

function method() {} // 名前あり
var bar = {
  var : method
}
console.log(bar);
console.log(bar.var);
console.log(bar.var.name);
$ node ninja01.js 
{ var: [Function] }
[Function]

{ var: [Function: method] }
[Function: method]
method
関数にプロパティを紐づけることが出来るので関数に関数を紐づけてみる。

使い道あるのかな?

var foo = function() {};
console.log(foo);
foo.bar = function(){console.log('a');};
console.log(foo);
console.log(foo.bar);
foo.bar();
$ node ninja02.js
[Function]
{ [Function] bar: [Function] }
[Function]
a