你可能不知道的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去掉数组中的重复元素
Jan 13 Javascript
DOM2非标准但却支持很好的几个属性小结
Jan 21 Javascript
关于jquery性能最佳实践的讨论,与求教
Mar 30 Javascript
Js制作点击输入框时默认文字消失的效果
Sep 05 Javascript
JavaScript 控制字体大小设置的方法
Nov 23 Javascript
vue中的scope使用详解
Oct 29 Javascript
node 使用 async 控制并发的方法
May 07 Javascript
基于javascript实现贪吃蛇经典小游戏
Apr 10 Javascript
JS几个常用的函数和对象定义与用法示例
Jan 15 Javascript
js HTML DOM EventListener功能与用法实例分析
Apr 27 Javascript
js瀑布流布局的实现
Jun 28 Javascript
解决vue+router路由跳转不起作用的一项原因
Jul 19 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
自动分页的不完整解决方案
2007/01/12 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
项目实践之javascript技巧
2007/12/06 Javascript
JavaScript 面向对象之命名空间
2010/05/04 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
浅谈Python的list中的选取范围
2018/11/12 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
python 实现Harris角点检测算法
2020/12/11 Python
python中str内置函数用法总结
2020/12/27 Python
医科大学生毕业的自我评价分享
2013/11/12 职场文书
保险内勤岗位职责
2014/04/05 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
Python标准库pathlib操作目录和文件
2021/11/20 Python
MySQL常用慢查询分析工具详解
2022/08/14 MySQL