JavaScript使用变量代替属性

时间:2018-10-30 16:01:04

标签: javascript

我有一个功能

set(prop, value) {
    prop(value);
}

但是它告诉我prop不是函数,这是正常的。

我想要的是:

set('foo', 'bar') {
    foo('bar');
}

我该怎么办?我需要帮助!

3 个答案:

答案 0 :(得分:0)

为什么不使用函数而不是函数名?

直接传递函数并在您的set方法中调用它:

set(foo, 'bar') {
    foo('bar');
}

答案 1 :(得分:0)

如果foo是全局函数,并且您正在浏览器中运行此函数,则可以按以下方式使用:-

function set(arg1, arg2){ 
    window[arg1](arg2); 
}

答案 2 :(得分:0)

关于您到底想做什么以及代码上下文的信息很少。您必须通过这种方式告诉JS函数在做什么。我对您的问题的看法如下:

//declare prop as function
var prop = function(x){
    //do whatever you need with it
    return x;
};

//set is a function?
function set(prop, value) {
    return prop(value);
}

console.log(set(prop, 'passed value'));