你可能不知道的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 相关文章推荐
一些mootools的学习资源
Feb 07 Javascript
javascript使用activex控件的代码
Jan 27 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
JQuery限制复选框checkbox可选中个数的方法
Apr 20 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
jQuery内存泄露解决办法
Dec 13 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
Jul 05 Javascript
ajax请求+vue.js渲染+页面加载的示例
Feb 11 Javascript
小程序tab页无法传递参数的方法
Aug 03 Javascript
vue最简单的前后端交互示例详解
Oct 11 Javascript
ES6基础之展开语法(Spread syntax)
Feb 21 Javascript
微信小程序中如何计算距离某个节日还有多少天
Jul 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 If Else(elsefi) 语句
2013/04/07 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
Yii中表单用法实例详解
2016/01/05 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
jQuery知识点整理
2015/01/30 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
Python最基本的输入输出详解
2015/04/25 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
销售文员的岗位职责
2013/11/20 职场文书
生物技术专业求职信
2014/06/10 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL