我想实现与此相同的...
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";
}
不幸的是,一些浏览器在实现这个非常有用的功能时有奇怪的怪癖,所以使用它并不是完全安全的。
请注意,在上面,有两个单独的“x”符号。函数名“x”绑定在函数内部,它在外部作用域中隐藏了变量“x”。