我正在通过 AJAX 加载一个脚本文件,并运行它的内容,我正在这样做:
new Function('someargument',xhr.responseText)(somevalue);
但是,根据 MDN:
Function
使用构造函数创建的对象在创建Function
函数时被解析。这比声明一个函数并在代码中调用它效率低,因为使用函数语句声明的函数会与其余代码一起解析。
我真的不太明白。如果声明了一个函数,它仍然必须从文件的字符串格式中解析出来,那么为什么运行加载的字符串new Function
效率会更低呢?
这对我来说真的更像是一个好奇的事情。我可以理解为什么在循环中会不好(必须重新解析相同的字符串),但是对于这样的事情,我认为没有任何问题,是吗?