如果我在某个对象中定义了一个函数,如:
var myobject={
myfunction:function(){//mycode here}
}
通常您可以使用以下方式访问该功能:
myobject.myfunction()
但如果我想使用
怎么办?myobject["myfunction"]
尝试这样,实际上函数没有被调用,我怎么能用括号表示法调用函数?
答案 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"]();