功能
将字符串函数变为可执行的函数
1.可用fn.toString()获取字符串
2.读取的文本字符串内容
3.自定义的字符串函数
代码
//示范用的参数
var a = function(oP, oP2, oP3) {
console.log(oP, oP2, 666);
}
var $pm2 = function(sFn) { //获取形参名称的数组
var str = sFn, //将函数转化为字符串
index = str.indexOf('('),
index2 = str.indexOf(')'),
str2 = str.slice(index + 1, index2), //提取()内的形参字符串
arr = str2.split(','); //将字符串转化为数组,以逗号为分隔符
return arr;
}
var $fc = function(sFn) {//获取字符串函数内容并转换成函数
var pa = $pm2(sFn),获取形参名称的数组
str = sFn,
index = str.indexOf('{'),
index2 = str.indexOf(')'),
str2 = str.slice(index + 1, -1);//获取字符串函数执行内容
//...去除数组外壳,将其变为分散的参数
var fn=new Function(...pa,str2);
//console.log(str2);
//console.log(fn.toString())
return fn;
}
//调用
$fc(a.toString())
总结
可以将变为字符串的函数还原为可执行的函数