new Function()

简介: 原文链接: new Function() 原文日期: 2014年3月2日翻译日期: 2014年3月14日 翻译人员: 铁锚 JavaScript的精神领袖Douglas Crockford曾说过JavaScript是程序员唯一不需要学习就能直接使用的语言. 在编程中确实是如此。
原文链接: new Function()
原文日期: 2014年3月2日

翻译日期: 2014年3月14日

翻译人员: 铁锚


JavaScript的精神领袖Douglas Crockford曾说过JavaScript是程序员唯一不需要学习就能直接使用的语言.
在编程中确实是如此。我们大多数人都使用过JavaScript,近年来随着各种JavaScript框架的流行使得JavaScript变得更加神奇和容易。"Anonymous (匿名)函数?不知道那是什么但是看起来和自己所写的差不多。”
你可能并不知道可以传给 new Function() 一个字符串作为函数的body来构造一个 JavaScript函数。编程中并不经常用到,但有时候应该是很有用的.

The 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模式,欢迎留言和讨论!
目录
相关文章
|
中间件
解构如何运用的解构--报错 throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
解构如何运用的解构--报错 throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
解构如何运用的解构--报错 throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
构造函数(function)可以使用 new 生成实例,箭头函数可以吗
构造函数使用 `new` 关键字可以生成实例对象,而箭头函数则不能用作构造函数,因为它没有自己的 `this` 上下文,使用 `new` 调用会抛出错误。
|
JSON 自然语言处理 JavaScript
深入理解Js里new Function语法
深入理解Js里new Function语法
|
JavaScript 中间件
node.js 报错 throw new TypeError(‘app.use() requires a middleware function‘)
node.js 报错 throw new TypeError(‘app.use() requires a middleware function‘)
714 0
|
JavaScript 前端开发 C++
在AngularJS中学习javascript的new function意义及this作用域的生成过程
慢慢入门吧,不着急。 至少知道了controller和service的分工。 new function时,隐含有用this指向function的prototype之意。 这样,两个JAVASCRIPT难点,作用域及原型域得以统一。
1267 0
|
人工智能 Python
083_类_对象_成员方法_method_函数_function_isinstance
本内容主要讲解Python中的数据类型与面向对象基础。回顾了变量类型(如字符串`str`和整型`int`)及其相互转换,探讨了加法在不同类型中的表现。通过超市商品分类比喻,引出“类型”概念,并深入解析类(class)与对象(object)的关系,例如具体橘子是橘子类的实例。还介绍了`isinstance`函数判断类型、`type`与`help`探索类型属性,以及`str`和`int`的不同方法。最终总结类是抽象类型,对象是其实例,不同类型的对象有独特运算和方法,为后续学习埋下伏笔。
283 7
083_类_对象_成员方法_method_函数_function_isinstance
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
335 17

热门文章

最新文章