2017-10-20 76 views
0

以下调用函数依赖于双引号和单引号如何将其仅转换为单引号并获得相同的结果?带有单引号参数的Javascript字符串

const task.func = 'A' 
const task.arg = 'B' 
const callFunction = "doTask."+task.func+"('"+task.arg+"')" 

console.log(callFunction); // doTask.A('B') 

回答

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')

5
const callFunction = 'doTask.' + task.func + '(\'' + task.arg + '\')' 

你需要使用\

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);

相关问题