声明

时间:2015-07-14 16:46:10

标签: javascript function properties scope

我知道我们可以设置一个函数属性,如下所示

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


修改
寻找一些不使用函数构造函数创建任何对象或使用原型的方法

2 个答案:

答案 0 :(得分:2)

不,没有。函数内部仅进行正文,即调用函数时执行的代码。函数文字/声明不是对象文字,即使两者都使用花括号。

如果您正在寻找比将静态属性放在函数上的赋值更具声明性的方法,请使用某种extend功能:

var f = Object.assign(function f() {}, {
    a: 1
});

(所有_.extend$.extendObject.assign都可以用于此目的 - 否则只需使用f.a =

答案 1 :(得分:-1)

唯一可行的方法是使用list关键字调用该函数:

new

我已经在这个jsfiddle上发布了一些测试:

http://jsfiddle.net/j4svr90x/2/