使用括号表示法在对象内调用函数

时间:2014-01-17 09:13:54

标签: javascript object notation

如果我在某个对象中定义了一个函数,如:

var myobject={
myfunction:function(){//mycode here}
}

通常您可以使用以下方式访问该功能:

myobject.myfunction()

但如果我想使用

怎么办?
myobject["myfunction"]

尝试这样,实际上函数没有被调用,我怎么能用括号表示法调用函数?

2 个答案:

答案 0 :(得分:8)

使用它。你很亲密

myobject["myfunction"]();

你也可以这样做

var myfuncname="myfunction";
myobject[myfuncname]();

答案 1 :(得分:1)

两种形式

myobject.myfunction;

myobject["myfunction"];

是等效的,只要您只使用固定的字符串来访问该成员(使用计算值是另一回事,那么您必须使用第二种形式)。两行都会生成函数对象成员myfunction,如果您愿意,可以将其分配给变量,并调用:

var myfunc = myobject.myfunction;
myfunc();

请注意,将其分配给变量会破坏this变量,因此如果您正在进行OOP,则可能不希望这样做。

正如您所指出的,调用函数意味着之后添加()参数列表,通过表达式获取函数无关紧要,所以:

myobject.myfunction();

myobject["myfunction"]();