什么可以取代with语句

时间:2015-09-24 04:47:12

标签: javascript performance functional-programming

如果您确实需要更改范围(即创建REPL),可以替换with语句。

我尝试过类似的事情:

function evalInScope( scope, code ) {    
    let 
    keys = scope.keys(),
    values = keys.map(it => scope[it]),
    fn = eval(`new Function( ${ keys.map(key => '"' + key + '"').join(',') }, " return (${ code })") `);
    return fn.apply(context, values);
}

但这似乎不是最佳解决方案

0 个答案:

没有答案