你可能不知道的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 相关文章推荐
基于Jquery的表格隔行换色,移动换色,点击换色插件
Dec 22 Javascript
JQuery实现表格中相同单元格合并示例代码
Jun 26 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
Apr 04 Javascript
JS实现控制表格单元格垂直对齐的方法
Mar 30 Javascript
javascript实现在线客服效果
Jul 15 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
Jun 07 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
Aug 24 Javascript
JavaScript实现简单图片轮播效果
Aug 21 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
基于原生js运动方式关键点的总结(推荐)
Oct 01 Javascript
javascript中的replace函数(带注释demo)
Jan 07 Javascript
简述vue路由打开一个新的窗口的方法
Nov 29 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
一个比较简单的PHP 分页分组类
2009/12/10 PHP
js 金额文本框实现代码
2012/02/14 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
详谈javascript异步编程
2016/02/21 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
Python中endswith()函数的基本使用
2015/04/07 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
python hook监听事件详解
2018/10/25 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
解释i节点在文件系统中的作用
2013/11/26 面试题
2015年学校心理健康教育工作总结
2015/05/11 职场文书
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang
详细了解MVC+proxy
2021/07/09 Java/Android