これと同じことを達成したい...
var x = function(){ return "abc"}
x.y = 123
x() // "abc"
x.y // 123
しかし、このように関数定義内のプロパティを定義するには...
var x = function(){
// declare `this.y` here somehow...
// this.y = 123
return "abc"
}
これと同じことを達成したい...
var x = function(){ return "abc"}
x.y = 123
x() // "abc"
x.y // 123
しかし、このように関数定義内のプロパティを定義するには...
var x = function(){
// declare `this.y` here somehow...
// this.y = 123
return "abc"
}
式の一部として関数をインスタンス化する場合でも、関数に名前を付けることができます。
var x = function x() {
x.y = 123;
return "abc";
}
残念ながら、一部のブラウザには、その非常に便利な機能の実装に奇妙な癖があるため、それを使用することは実際には完全に安全ではありません。
上記では、2つの別個の「x」記号があることに注意してください。関数名「x」は関数内でバインドされ、変数「x」を外部スコープで非表示にします。