[英]How can I invoke a member function using bracket notation?
var objectliteral = {
func1:fn(){},
func2:fn(){},
.................
funcn:fn(){}
}
I know I can invoke methods from that object literal using dot notation this: 我知道我可以使用点表示法调用该对象文字中的方法:
objectliteral.func1();
But I would like to do that using array notation like this: 但是我想使用这样的数组符号来做到这一点:
objectliteral[func1]. .... something something......
How do I do that? 我怎么做? I know I can use apply or call methods - but I'm still don't quite get how they work.
我知道我可以使用应用或调用方法 - 但我仍然不太明白它们是如何工作的。
Can I just do this?: 我可以这样做吗?:
objectliteral[func1].apply();
RESOLUTION 解析度
based on answers: 根据答案:
objectliteral['func1']()
is all I need. 我所需要的。 Thanks guys.
多谢你们。
No, do this: 不,这样做:
objectliteral['func1']();
You can also use a dynamic name: 您还可以使用动态名称:
var myfuncname='func1';
objectliteral[myfuncname]();
You can do it like this: 你可以这样做:
var objectLiteral = {
func1: function() { alert('func1'); },
func2: function() { alert('func2'); }
};
// This does the same thing...
objectLiteral['func1']();
// As this does
objectLiteral.func1();
你可以试试这个:
objectliteral['func1']();
user objectliteral["funct1"].apply()
or objectliteral["funct1"]()
. user
objectliteral["funct1"].apply()
或objectliteral["funct1"]()
。
You can also use a variable to pass the function name 您还可以使用变量来传递函数名称
var funname = "funct1";
objectliteral[funname ]()
你可以做objectliteral["func1"]();
var func1 = 'func1'
objectLiteral[func1]();
Should get you working. 应该让你工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.