- 正常情况下bind()是如何使用的??
Math.max.bind([],3,2,1,34,23,55,4)
.bind(obj,参数1,参数2…)
因为形参只设了一个obj,所以obj为第一个实参,所有实参都在arguments里
Function.prototype.mybind = function (obj) {
// 截取参数1,参数2...
// [3,2,1,34,23,55,4].slice(2,4) // 结果为:[1,34]
// [3,2,1,34,23,55,4].slice(1) // 结果为:[2, 1, 34, 23, 55, 4]
var myarguments = [].slice.call(arguments, 1)
// 返回Math.max运行结果,this指向任意函数
return this.apply(obj, myarguments)
}
var res = Math.max.mybind([], 9, 10, 400, 66)
console.log(res);//400