我想实现与此相同......
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"
}
答案 0 :(得分:1)
即使将函数实例化为表达式的一部分,也可以为函数指定名称:
var x = function x() {
x.y = 123;
return "abc";
}
不幸的是,some browsers have weird quirks实现了这个非常有用的功能,因此使用它并不是完全安全的。
注意,在上面,有两个单独的“x”符号。函数名“x”绑定在函数内部,它隐藏了外部作用域中的变量“x”。