如何使用括号表示法调用成员函数?

时间:2010-12-17 08:44:04

标签: javascript object-literal

var objectliteral = {
    func1:fn(){},
    func2:fn(){},
    .................
    funcn:fn(){}
}

我知道我可以使用点符号来调用该对象文字中的方法:

objectliteral.func1();

但我想使用这样的数组符号来做到这一点:

objectliteral[func1]. .... something something......

我该怎么做?我知道我可以使用应用或调用方法 - 但我仍然不太明白它们是如何工作的。

我可以这样做吗?:

objectliteral[func1].apply();

解决

基于答案:

objectliteral['func1']()

就是我所需要的。 谢谢你们。

6 个答案:

答案 0 :(得分:11)

不,这样做:

objectliteral['func1']();

您还可以使用动态名称:

var myfuncname='func1';
objectliteral[myfuncname]();

答案 1 :(得分:2)

你可以这样做:

var objectLiteral = {
    func1: function() { alert('func1'); },
    func2: function() { alert('func2'); }
};

// This does the same thing...
objectLiteral['func1']();

// As this does
objectLiteral.func1();

答案 2 :(得分:1)

你可以试试这个:

objectliteral['func1']();

答案 3 :(得分:1)

用户objectliteral["funct1"].apply()objectliteral["funct1"]()

您还可以使用变量传递函数名称

var funname = "funct1";
objectliteral[funname ]()

答案 4 :(得分:1)

您可以执行objectliteral["func1"]();

答案 5 :(得分:1)

var func1 = 'func1'
objectLiteral[func1]();

应该让你工作。