【发布时间】:2017-05-22 16:04:58
【问题描述】:
这可能会让某人感兴趣并节省几个小时,这是一个令人讨厌的捆绑问题,eval 来自一个文件,而 function 来自第二个文件。
eval('console.log(0)')
(function(x){console.log(x)})(1)
将导致:Uncaught TypeError: eval(...) is not a function
这就是解决方法
eval('console.log(0)');
(function(x){console.log(x)})(1)
缺少分号,我读过几次 JS 中的分号大部分时间都是可选的。
任何 cmets 为什么 eval 在这种情况下不是一个函数?
【问题讨论】:
-
虽然分号插入是可选的。很高兴了解 JS 引擎何时会真正插入分号。阅读此答案可能会有所帮助stackoverflow.com/questions/2846283/…
-
这里的教训是总是在包中的文件之间放置分号:)
-
当您将一些
undefined变量传递给eval时,可能会发生这种情况。就我而言,我没有在 Postman 中导入一些全局变量:eval(globals.some_function)();
标签: javascript syntax eval