你可能不知道的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 相关文章推荐
关于使用runtimeStyle属性问题讨论文章
Mar 08 Javascript
Sample script that displays all of the users in a given SQL Server DB
Jun 16 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
Jul 20 Javascript
JavaScript简介
Feb 15 Javascript
jQuery定义背景动态切换效果的方法
Mar 23 Javascript
解决jquery实现的radio重新选中的问题
Jul 03 Javascript
jQuery fadeOut 异步实例代码详解
Aug 18 Javascript
JS中的多态实例详解
Oct 15 Javascript
vue element-ui table表格滚动加载方法
Mar 02 Javascript
微信小程序使用车牌号输入法的示例代码
Aug 20 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
php _autoload自动加载类与机制分析
2012/02/10 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
解决python写的windows服务不能启动的问题
2014/04/15 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
Python3.6.x中内置函数总结及讲解
2019/02/22 Python
python urllib爬虫模块使用解析
2019/09/05 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
建筑专业自我鉴定
2013/10/22 职场文书
大学生工作推荐信范文
2013/12/02 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
公司副总经理任命书
2014/06/05 职场文书
文秘自荐信
2014/06/28 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server