你可能不知道的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 相关文章推荐
javascript:以前写的xmlhttp池,代码
May 18 Javascript
基于JQuery的列表拖动排序实现代码
Oct 01 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
Feb 16 Javascript
javascript基础语法——全面理解变量和标识符
Jun 02 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
Oct 28 Javascript
如何判断出一个js对象是否一个dom对象
Nov 24 Javascript
JS中parseInt()和map()用法分析
Dec 16 Javascript
如何在 Vue.js 中使用第三方js库
Apr 25 Javascript
详解ECMAScript6入门--Class对象
Apr 27 Javascript
微信小程序 上传头像的实例详解
Oct 27 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
Vue实现日历小插件
Jun 26 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作的文本留言本的例子(一)
2006/10/09 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
Python实现求两个csv文件交集的方法
2017/09/06 Python
python中kmeans聚类实现代码
2018/02/23 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
python GUI计算器的实现
2020/10/09 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
思想品德课教学反思
2014/02/10 职场文书
安全生产活动月方案
2014/03/09 职场文书
研讨会主持词
2014/04/02 职场文书
交流会主持词
2015/07/02 职场文书
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers