假设表达式为:
var ex = "console.log(123); return false; console.log(456)"
然后我这样做:
$('#id').change(function(){
eval(ex)
})
当我运行并更改值时,出现错误"非法返回语句"。问题是"返回假">,没有它就没有问题。
假设我无法更改表达式(从 API 获取(,如何在保留中断(返回 false(功能的同时评估表达式?
你可以把它放到一个new Function
中:
var ex = "console.log(123); return false; console.log(456)"
// $('#id').change(function(){
const fn = new Function(ex);
fn();
// })
也可以用(() => {
和})();
包围字符串:
var ex = "console.log(123); return false; console.log(456)"
// $('#id').change(function(){
eval(`(() => {${ex}})();`);
// })