将属性附加到其定义中的函数

时间:2012-08-08 17:20:47

标签: javascript

我想实现与此相同......

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

1 个答案:

答案 0 :(得分:1)

即使将函数实例化为表达式的一部分,也可以为函数指定名称:

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

不幸的是,some browsers have weird quirks实现了这个非常有用的功能,因此使用它并不是完全安全的。

注意,在上面,有两个单独的“x”符号。函数名“x”绑定在函数内部,它隐藏了外部作用域中的变量“x”。