您好,登录后才能下订单哦!
这篇文章主要介绍JavaScript如何使用Function()构造函数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Function()构造函数
先看代码:
var f = new Function("x","y","return x+y"); //Function()构造函数 var f = function(x,y){return x+y}; //这两条代码是等价的
通过这个方法我们可以传入任意数量的字符串实参,而且最后一个实参所表示的文本是函数体,这个方法它是可以包含任意数量的JavaScript语句的,而且在使用的时候如果构造的函数不包含任何参数的话,我们只需要输入一个函数就可以了。这个方法和其他两个方法是不一样的,这个方法是允许JavaScript在运行的时候动态地创建翻译函数,而且我们每次在调用这个方法的时候函数都会进行解析函数体。所以在多次使用或者循环使用的话,效率是会受到影响的。相比之下循环中的嵌套函数和函数定义表达式就不会每次执行的时候进行重新编译。
对于这个构造函数还有一点是值得我们注意的,那就是它所创建的函数并不是使用词法作用域,都因为函数体代码在编译的时候总在顶层函数执行,代码如下所示:
var a = 3; //在顶层函数中声明变量a function f(){ var a = 2; //在函数体内声明局部变量a return new Function("return a*a;"); //无法捕获局部作用域 } console.log(f()()); //控制台输出9而非4,说明构造函数的编译在顶层函数执行
那么对于这个问题我们可以在全局作用域中进行执行eval()。
以上是“JavaScript如何使用Function()构造函数”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。