下面的调用函数依赖于双引号和单引号如何才能将其转换为单引号并获得相同的结果?
const task.func = 'A'
const task.arg = 'B'
const callFunction = "doTask."+task.func+"('"+task.arg+"')"
console.log(callFunction); // doTask.A('B')
答案 0 :(得分:5)
const callFunction = 'doTask.' + task.func + '(\'' + task.arg + '\')'
您需要使用\
答案 1 :(得分:1)
逃避单引号:
const task = {
func: 'A',
arg: 'B'
};
const callFunction = 'doTask.' + task.func + '(\'' + task.arg + '\')';
console.log(callFunction); // doTask.A('B')

或者,如果您将反引号视为单引号,则可以使用template literals:
const task = {
func: 'A',
arg: 'B'
};
const callFunction = `doTask.${task.func}('${task.arg}')`;
console.log(callFunction); // doTask.A('B')

答案 2 :(得分:0)
你没有调用函数func
而只是创建一个在下面的行中看起来像函数的字符串,
const callFunction = "doTask."+task.func+"('"+task.arg+"')";
此外,您不需要使用引号,只需提供变量名作为参数。
试试这样。
task = {};
task.func = function (arg){
return 'func called with arg : '+arg;
};
task.arg = 'B';
const callFunction = 'doTask.'+task.func(task.arg);
console.log(callFunction);