自己写了一个
var formatString = function(str){
var re = /\${(.*?)}/g;
function replacer(match){
return eval(match.substring(2,match.length-1));
}
var result = str.replace(re, replacer)
return result;
}
但是不能解决eval作用域的问题,eval取不到对应的变量。
究竟这个是怎么实现的?
你应该取对应作用域的变量,而不是用eval来取。
比如:
如果之前的作用域为this,则这样获得
我电脑在做系统,暂时无法测试是否可行,不过这个思路是存在的
简单写了一下,可能有考虑不周的地方,希望有人看到可以指出。