【发布时间】:2015-07-14 16:46:09
【问题描述】:
我知道我们可以设置如下函数属性
function f(){}
f['a']=1;//setting function property from outside
alert(f.a)//alert 1
但是是否可以如下设置函数的属性,或者是否有任何其他类似的方式在函数内部声明属性,而不是从外部声明?
function f() {
a: 1
}
alert(f.a); //get 1 as output
编辑:
寻找一些不使用从函数构造函数创建任何对象或使用原型的方法
【问题讨论】:
-
是的,我的意思是
-
是的,您当然可以从函数内部将属性分配给函数对象。在所有函数中,
arguments.callee指的是封闭函数,但您确实应该将使用这种交互的函数命名为不推荐使用的被调用者。 -
@dandavis: "in all functions, arguments.callee" 并非所有,
callee在严格模式下不存在(实际上它不应该存在于第一名)。如您所说,使用名称,然后在函数中使用名称(如果需要):function f() { f.a = 1; }。但我确定 OP 不希望仅在调用时才定义它(并在每次调用时重复重新定义)。 -
据我所知 arguments.callee 用于递归调用匿名函数
-
@Flake:只有当你有一个非常好的理由需要匿名的时候(因为 IE8 的消亡,我想不出一个,因为this bug 不再是借口)。而且不是严格模式,因为
callee不存在。
标签: javascript function properties scope