Я хочу запускать код динамически, без использования <script>
,, поэтому я использовал new Function
, но при записи \n
:
возникает проблема
function run (code) {
(new Function(code))()
}
run('console.log("run well")') // it work well
run('console.log("\nError")') // error
результат:
ошибка
Uncaught SyntaxError: Invalid or unexpected token
at new Function (<anonymous>)
at run (<anonymous>:2:3)
at <anonymous>:1:1
И мы можем найти причину в консоли: '\ n' перешел на новую строку
(function() {
console.log(" // error here
Error")
})
, поэтому использование ` для замены " может решить эту проблему:
run(`console.log("\nWell")`)
(function() {
console.log(` // work here
Error`)
})
но это не подходит для использования ` в производстве, так что если есть другой способ сделать это хорошо?