“新功能”的使用和性能问题

2024-05-04

我正在通过 AJAX 加载脚本文件,并运行其内容,我这样做:

new Function('someargument',xhr.responseText)(somevalue);

然而,根据 MDN 的说法:

Function使用创建的对象Function构造函数在创建函数时被解析。这比声明函数并在代码中调用它的效率要低,因为使用函数语句声明的函数将与其余代码一起进行解析。

我实在不太明白。如果声明了一个函数,它仍然需要从文件的字符串格式进行解析,那么为什么要通过运行加载的字符串new Function效率会低吗?

这对我来说确实是一个比较好奇的事情。我可以理解为什么它在循环中会很糟糕(必须重新解析相同的字符串),但是对于这样的事情我认为没有任何问题,是吗?


我认为他们的意思是,如果您在代码中使用函数构造函数,如下所示:

new Function('bar', 'console.log(bar);'));

函数体被解析两次:第一次是在加载代码时作为字符串,第二次是在运行时构造函数时。就您而言,您是在解析代码后从 ajax 响应创建函数的,所以实际上这是一个完全不同的交易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“新功能”的使用和性能问题 的相关文章

随机推荐