【问题标题】:Toggle function from variable从变量切换函数
【发布时间】:2026-02-06 06:15:01
【问题描述】:

假设我有函数x.a()x.b()。我想决定哪个函数通过变量执行,但它不按我的方式工作。这是我的代码,希望你能帮助我。

var x = { 
    y: function(f, g){
        f(g);
    }
    a: function(txt){
        console.log(txt);
    },
    b: function(txt){
        console.error(txt);
    }
}

所以当我打电话给x.y("a", "Some text"); 时,它的作用与我打电话给x.a("Some text"); 一样。

谢谢!

【问题讨论】:

    标签: javascript function var


    【解决方案1】:

    使用方括号按名称访问对象的属性:

    var x = { 
        y: function(f, g) {
            this[f](g);
        },
        a: function(txt) {
            console.log(txt);
        },
        b: function(txt) {
            console.error(txt);
        }
    };
    

    【讨论】:

    • 在声明y 之后,OP 代码和您的代码都缺少逗号(为了记录,我不是反对者)。
    • @minitech——也许投票者宁愿放弃声誉,也不愿编辑您的帖子以添加逗号(如果这是原因的话)。