Function.prototype.call()
call的第一个参数为一个对象,如果为primitive类型,则会自动转为该类型对应的包装类型。若为null、空、undefined则传入全局对象。
call将该方法内部的this关键字指向第一个参数指定的对象并执行,也就是改变函数执行的作用域,call还可接第二个及多个参数,代表传入当前函数的参数。
Function.prototype.apply()
和call一样,只不过传入参数时是以数组的方式传入。
Function.prototype.bind()
每次调用返回一个新的函数且不执行,使新函数内部的this指向第一个参数指定的对象,规则同call(应该,书上没写,我也没试)