#bind函数的实现
//第一步
Function.prototype.hybind = function(){
return function(){
var fn = this
fn()
}
}
function sum(){
console.log('sum被调用了',this)
}
let sums = sum.bind()
sums()
//第二步
Function.prototype.hybind = function(thisArgs){
return function(){
var fn = this
thisArgs = (thisArgs != null && thisArgs != undefined) ? Object(thisArgs) : window
thisArgs.function = fn
thisArgs.function()
delete thisArgs.function
}
}
function sum(){
console.log('sum被调用了',this)
}
let sums = sum.bind('aaa')
sums()
//第三步
Function.prototype.hybind = function(thisArgs,...args){
return function(...arg){
var fn = this
thisArgs = (thisArgs != null && thisArgs != undefined) ? Object(thisArgs) : window
thisArgs.function = fn
thisArgs.function(...args,...arg)
delete thisArgs.function
}
}
function sum(num1,num2,num3,num4){
console.log('sum被调用了',this)
console.log(num1, num2, num3, num4)
}
let sums = sum.bind('aaa',1,2)
sums(3,4)