javascript Function构造函数

new Function([arg1 [, arg2 [, ... argN]],]  functionBody)

每次调用都会创建一个新函数:

  1. arg1,   arg2, ... argN 为新函数形参名
  2. functionBody,   函数体

新函数在创建时执行解析,比平时函数声明效率低下,通过Function构造函数创建的函数不会创建闭包。相当于定义全局函数。即在函数运行时只能访问函数自己本地变量以及全局变量。

Function不包含任何属性和方法,它创建的实例,或者平时我们声明的函数,通过Function.prototype继承属性和方法:

  1. Function.prototype.apply():    以第一个参数作为上下文,第二个参数作为参数调用方法,第二个参数为数组
  2. Function.prototype.bind():    创建一个新函数,当调用新函数时,以传入的第一个参数为上下文,后续参数作为默认参数绑定。
  3. Function.prototype.toString():    返回函数源代码
  4. Function.prototype.isGenerator():    如果函数是generator,返回true,否则false

函数实例:函数实例从Function.prototype继承方法和属性。对于所有的构造函数,可以通过修改其prototype来修改对应实例

原文地址:https://www.cnblogs.com/qiudeqing/p/3452704.html