Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JavaScript对象方法名称作为字符串参数传递_Javascript_Javascript Objects - Fatal编程技术网

如何将JavaScript对象方法名称作为字符串参数传递

如何将JavaScript对象方法名称作为字符串参数传递,javascript,javascript-objects,Javascript,Javascript Objects,我有一个JavaScript代码,我想稍微整理一下,我试图将对象方法名作为字符串传递,但它不起作用。有可能这样做吗 var mywebkit = { execute: function(_function, _value){ //var func = new Function(_function); var func = new Object(_function); try{ if(Interface("android")){ androi

我有一个JavaScript代码,我想稍微整理一下,我试图将对象方法名作为字符串传递,但它不起作用。有可能这样做吗

var mywebkit = {
  execute: function(_function, _value){
    //var func = new Function(_function);
    var func = new Object(_function);
    try{
      if(Interface("android")){
        androidweb.func(_value); 
      }else if(Interface("ios")){
        webkit.messageHandlers.func.postMessage(_value);
      }
    } catch(err) {
      if(DEBUG){console.log('The native context does not exist yet', err);}
    }
  }
};
测试JavaScript对象函数示例:

var androidweb = {
  test: function(k){
    console.log("value=" + k);
  }
};

var webkit = {
  messageHandlers: {
    test: {
      postMessage: function(k){
        console.log("value=" + k);
      }
    }
  }
};

function Interface(t){
  return (t == "android" ? true : false);
}
用法:

mywebkit.execute("test", "This is my value");

你是说像这样的计算对象属性吗?
如果是,您可以将其与
object[property]
语法一起使用

const prop='test';
常数foo={
test:()=>console.log('test'),
};
foo[prop]();//日志“测试”
不要忘记验证

const prop='bad';
常数foo={
test:()=>console.log('test'),
};
foo[prop]();//TypeError:foo[prop]不是函数
验证如下所示:

if(foo中的道具){
傅[prop]();
}
在代码中尝试这样做

/*替换此*/
var func=新对象(_函数);
androidweb.func(_值);
/*用这个*/
if(_函数在androidweb中){
androidweb[_函数](_值);
}

var func=new Object(_function)does?@JuanMendes它使用字符串测试创建了一个对象,我将其添加为我的尝试。它只返回作为装箱
string
对象传入的字符串。查看标记为重复的问题。提示:
androidweb[\u函数](\u值)
我知道您试图对OP有所帮助。但是,这是一个非常常见的问题,我们应该避免对同一个问题给出多个答案。通常,评论中的一个简短的注释,就像我做的那样,足以帮助指导操作。@JuanMendes好的,我明白你的意思。我更新了我的答案(添加了我的建议,他如何解决此问题:)