在声明中设置两个相等的属性

qwe*_*ymk 8 javascript jquery object

我想在一个对象中设置两个彼此相等的属性.这是一个例子:

var obj = { // I want to do something like this
    a: function() { ... },
    b: alert,
    c: a
};
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,我必须做这样的事情:

var obj = {
    a: function() { ... },
    b: alert,
};
obj.c = obj.a;
Run Code Online (Sandbox Code Playgroud)

宣言中有没有办法做到这一点?

Kev*_*nis 1

var obj = { 
    a: function() { alert("hello")},
    b: alert,
    c: function(){return this.a()}
};

obj.c();
Run Code Online (Sandbox Code Playgroud)

正如 SLAks 提到的,如果函数具有属性(例如,prototype 或arguments.callee),这将不起作用。