如何将JavaScript对象方法名称作为字符串参数传递
我有一个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
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好的,我明白你的意思。我更新了我的答案(添加了我的建议,他如何解决此问题:)