Javascript 用这句话重写一篇文章
为什么我不能用Javascript 用这句话重写一篇文章,javascript,node.js,dom,browser,Javascript,Node.js,Dom,Browser,为什么我不能用 new Function(`with(this) { return ${$eval}}`).call({ moment, ...context }); ): 我做错什么了吗?我需要这样做来移动代码 另外,如果我可以重写这个没有与这将是伟大的,但不知道如何!我不确定它从作用域链中得到了什么,因为我没有编写代码,但它非常复杂。传递给新函数的函数体只是一个字符串。您应该声明相应的参数并将其传递给创建的函数,而不是尝试将值插入字符串中(这通常是不可能的)
new Function(`with(this) { return ${$eval}}`).call({
moment,
...context
});
):
我做错什么了吗?我需要这样做来移动代码
另外,如果我可以重写这个没有与这将是伟大的,但不知道如何!我不确定它从作用域链中得到了什么,因为我没有编写代码,但它非常复杂。传递给
新函数的函数体只是一个字符串。您应该声明相应的参数并将其传递给创建的函数,而不是尝试将值插入字符串中(这通常是不可能的):
const that = this;
const ret = new Function(`with(${that}) { return ${$eval}}`).call({
moment,
...context
});
newfunction('that','with(that){return${$eval}}}')
表示函数
const ret = new Function('that', `with (that) { return ${$eval} }`)({
moment,
...context
});
你能在代码周围发布更多的上下文吗?你想干什么?是的,您应该真正避免使用、eval
和新功能
(function (that) {
with (that) {
return /* … code from $eval … */
}
})