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

发布于 2024-10-08 01:58:16 字数 566 浏览 5 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

心房的律动 2024-10-15 01:58:16

不,这样做:

objectliteral['func1']();

您还可以使用动态名称:

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

No, do this:

objectliteral['func1']();

You can also use a dynamic name:

var myfuncname='func1';
objectliteral[myfuncname]();
懒的傷心 2024-10-15 01:58:16

你可以这样做:

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

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

// As this does
objectLiteral.func1();

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();
っ左 2024-10-15 01:58:16

你可以试试这个:

objectliteral['func1']();

You could try this:

objectliteral['func1']();
眼泪也成诗 2024-10-15 01:58:16

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

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

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

user objectliteral["funct1"].apply() or objectliteral["funct1"]().

You can also use a variable to pass the function name

var funname = "funct1";
objectliteral[funname ]()
冰魂雪魄 2024-10-15 01:58:16

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

You can do objectliteral["func1"]();

筱武穆 2024-10-15 01:58:16
var func1 = 'func1'
objectLiteral[func1]();

应该让你工作。

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

Should get you working.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文