你可能不知道的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 相关文章推荐
一个tab标签切换效果代码
Mar 27 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
Mar 01 Javascript
JavaScript中5种调用函数的方法
Mar 12 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
Aug 22 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
解决JS外部文件中文注释出现乱码问题
Jul 09 Javascript
微信小程序左右滑动的实现代码
Dec 15 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
Jul 26 Javascript
js实现简单分页导航栏效果
Jun 28 Javascript
微信小程序自定义组件components(代码详解)
Oct 21 Javascript
layui表格设计以及数据初始化详解
Oct 26 Javascript
js实现简单的打印表格
Jan 15 Javascript
在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
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
js实现拖拽效果
2015/02/12 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
JS常用算法实现代码
2016/11/14 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Python多层装饰器用法实例分析
2018/02/09 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
Python 支付整合开发包的实现
2019/01/23 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
校园报刊亭创业计划书
2014/01/02 职场文书
餐饮业创业计划书范文
2014/01/06 职场文书
结婚保证书范文
2014/04/29 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
小升初自荐信范文
2015/03/05 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
python中opencv实现图片文本倾斜校正
2021/06/11 Python