如何把一个方法字符串,重新转回方法?

img

业务中有个需求,允许用户自己写一个js脚本.
把该脚本字符串存储到数据库中.下次需要使用的时候,拿出来转义成方法执行.

但这里我转义出来,倒是能执行,不过当我使用apply,传入对象时,也获取不到this.

请问如何解决?

箭头函数不绑定this 所以不能使用apply call bind等

let user = {name:'testUser'};
let test = eval("()=>{console.log('名字是:',user.name)}")
test.apply(user)

楼下说的对,你可以试试把箭头函数的字符串replace成完整的函数再进行调用