你可能不知道的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 要点归纳(三) jQuery中的事件和动画(下:动画篇)
Mar 24 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
Nov 07 Javascript
JS远程获取网页源代码实例
Sep 05 Javascript
使用 stylelint检查CSS_StyleLint
Apr 28 Javascript
js获取form表单所有数据的简单方法
Aug 18 Javascript
AngularJS extend用法详解及实例代码
Nov 15 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
JavaScript实现无刷新上传预览图片功能
Aug 02 Javascript
JavaScript 日期时间选择器一些小结
Apr 02 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
May 27 Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 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+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
PHP 裁剪图片
2021/03/09 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
Python 中的with关键字使用详解
2016/09/11 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
python和shell获取文本内容的方法
2018/06/05 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
Python面向对象进阶学习
2019/05/21 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
Python如何基于rsa模块实现非对称加密与解密
2020/01/03 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
出国留学担保书
2014/05/20 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
初婚初育证明范本
2014/11/24 职场文书
品质保证书格式
2015/02/28 职场文书
2015学习委员工作总结范文
2015/04/03 职场文书
工作态度不好检讨书
2015/05/06 职场文书
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS