业务中有个需求,允许用户自己写一个js脚本.
把该脚本字符串存储到数据库中.下次需要使用的时候,拿出来转义成方法执行.
但这里我转义出来,倒是能执行,不过当我使用apply,传入对象时,也获取不到this.
请问如何解决?
箭头函数不绑定this 所以不能使用apply call bind等
let user = {name:'testUser'};
let test = eval("()=>{console.log('名字是:',user.name)}")
test.apply(user)
楼下说的对,你可以试试把箭头函数的字符串replace成完整的函数再进行调用