0

これと同じことを達成したい...

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"
}
4

1 に答える 1

1

式の一部として関数をインスタンス化する場合でも、関数に名前を付けることができます。

var x = function x() {
  x.y = 123;
  return "abc";
}

残念ながら、一部のブラウザには、その非常に便利な機能の実装に奇妙な癖があるため、それを使用することは実際には完全に安全ではありません。

上記では、2つの別個の「x」記号があることに注意してください。関数名「x」は関数内でバインドされ、変数「x」を外部スコープで非表示にします。

于 2012-08-08T17:25:17.060 に答える