你可能不知道的JavaScript的new Function()方法


Posted in Javascript onApril 17, 2014

我们大多数人都使用过JavaScript,近年来随着各种JavaScript框架的流行使得JavaScript变得更加神奇和容易。"Anonymous (匿名)函数?不知道那是什么但是看起来和自己所写的差不多。”
你可能并不知道可以传给 new Function() 一个字符串作为函数的body来构造一个 JavaScript函数。编程中并不经常用到,但有时候应该是很有用的.

下面是 new Function 的基本用法:

// 最后一个参数是函数的 body(函数体),类型为 string;  
// 前面的参数都是 索要构造的函数的参数(名字)  
var myFunction = new Function('users', 'salary', 'return users * salary'); 

非常简单,对吧?

问题是:什么时候适合使用这种方式,而不使用传统的函数声明 function myFnName() 和/或 匿名函数定义? Andrea Giammarchi 认为,最适合使用 这种函数定义方式的场景是在NodeJS和浏览器的全局环境中:

(function(win) {    
    // 在全局环境中执行某些操作  
  
})(Function('return this')()); 

如果你曾经使用过 new Function模式,欢迎留言和讨论!
Javascript 相关文章推荐
类似框架的js代码
Nov 09 Javascript
javascript基本语法分析说明
Jun 15 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
Jun 29 Javascript
js实现无缝滚动特效
Dec 20 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
Jan 27 Javascript
angularjs中ng-attr的用法详解
Dec 31 Javascript
3种vue路由传参的基本模式
Feb 22 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
Node.js使用cookie保持登录的方法
May 11 Javascript
解决vue的变量在settimeout内部效果失效的问题
Aug 30 Javascript
jQuery实现基本隐藏与显示效果的方法详解
Sep 05 jQuery
在JS中解析HTML字符串示例代码
Apr 16 #Javascript
iframe的onreadystatechange事件在firefox下的使用
Apr 16 #Javascript
javascript打开word文档的方法
Apr 16 #Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
Apr 16 #Javascript
JavaScript两种跨域技术全面介绍
Apr 16 #Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
Apr 16 #Javascript
JavaScript框架(iframe)操作总结
Apr 16 #Javascript
You might like
当海贼王变成JOJO风
2020/03/02 日漫
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
PHP运行模式的深入理解
2013/06/03 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
vue中本地静态图片路径写法
2018/03/06 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
玩转python爬虫之URLError异常处理
2016/02/17 Python
Python 多线程Threading初学教程
2017/08/22 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
python 反向输出字符串的方法
2018/07/16 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
2014年大班保育员工作总结
2014/12/02 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python