你可能不知道的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 相关文章推荐
关于eval 与new Function 到底该选哪个?
Apr 17 Javascript
jquery中JSON的解析方式
Mar 16 Javascript
jQuery基于ID调用指定iframe页面内的方法
Jul 06 Javascript
深入分析javascript中的错误处理机制
Jul 17 Javascript
javascript的document中的动态添加标签实现方法
Oct 24 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
Angular的$http与$location
Dec 26 Javascript
20行JS代码实现网页刮刮乐效果
Jun 23 Javascript
JavaScript实现轮播图片完整代码
Mar 07 Javascript
原生js实现随机点名
Jul 05 Javascript
Vue中component标签解决项目组件化操作
Sep 04 Javascript
three.js中多线程的使用及性能测试详解
Jan 07 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
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
jquery插件之easing 动态菜单
2010/08/21 Javascript
读jQuery之一(对象的组成)
2011/06/11 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
JavaScript prototype属性详解
2016/10/25 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
JS实现简单打字测试
2020/06/24 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
详解Python的Django框架中的模版相关知识
2015/07/15 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
Python算法中的时间复杂度问题
2019/11/19 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
python变量的作用域是什么
2020/05/26 Python
Python gevent协程切换实现详解
2020/09/14 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
Python 里最强的地图绘制神器
2021/03/01 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
超市营业员岗位职责
2013/12/20 职场文书
物业招聘计划书
2014/01/10 职场文书
村党支部公开承诺书
2014/05/29 职场文书
客户答谢会活动方案
2014/08/31 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
iPhone13将有八大升级
2021/04/15 数码科技
Python中的嵌套循环详情
2022/03/23 Python