如何使用括号表示法调用成员函数?
var objectliteral = {
func1:fn(){},
func2:fn(){},
.................
funcn:fn(){}
}
我知道我可以使用点表示法从该对象文字调用方法:
objectliteral.func1();
但我想使用这样的数组表示法来做到这一点:
objectliteral[func1]. .... something something......
我该怎么做?我知道我可以使用 apply 或 call 方法 - 但我仍然不太明白它们是如何工作的。
我可以这样做吗?:
objectliteral[func1].apply();
解决方案
基于答案的
objectliteral['func1']()
:这就是我所需要的。 谢谢你们。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不,这样做:
您还可以使用动态名称:
No, do this:
You can also use a dynamic name:
你可以这样做:
You can do it like this:
你可以试试这个:
You could try this:
用户
objectliteral["funct1"].apply()
或objectliteral["funct1"]()
。您还可以使用变量来传递函数名称
user
objectliteral["funct1"].apply()
orobjectliteral["funct1"]()
.You can also use a variable to pass the function name
您可以执行
objectliteral["func1"]();
You can do
objectliteral["func1"]();
应该让你工作。
Should get you working.