ES5_05_Function扩展
Function 构造器的语法:
注意:
参数 arg1 , arg2 , argN 被函数使用的参数的名称必须是合法命名的。参数名称是一个有效的JavaScript标识符的字符串,或者一个用逗号分隔的有效字符串的列表
#属性和方法:
全局的Function对象没有自己的属性和方法, 但是, 因为它本身也是函数,所以它也会通过原型链从Function.prototype
上继承部分属性 和方法。
#原型对象方法:
*Function.prototype.apply()
在一个对象的上下文中应用另一个对象的方法;参数能够以数组形式传入。
*Function.prototype.bind()
bind()方法会创建一个新函数,称为绑定函数.当调用这个绑定函数时,绑定函数会以创建它时传 入 bind()方法的第一个参数作为 this,传入 bind()方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参 数来调用原函数.
*Function.prototype.call()
在一个对象的上下文中应用另一个对象的方法;参数能够以列表形式传入。
*Function.prototype.isGenerator()
若函数对象为
generator,返回true,反之返回 false
。
*Function.prototype.toSource()
获取函数的实现源码的字符串。 覆盖了 Object.prototype.toSource
方法。
*Function.prototype.toString()
获取函数的实现源码的字符串。覆盖了 Object.prototype.toString
方法
补充:
面试题: 区别bind()与call()和apply()?
* 都能指定函数中的this
* call()/apply()是立即调用函数
* bind()是将函数返回