手写一个bind函数

文章介绍了JavaScript中的bind方法,它用于创建一个新的函数,在新函数中this值被绑定到指定的对象。文中提供了一个bind的实现示例,展示了如何通过拆解参数和应用函数来达到绑定的效果。通过fn1和fn2的示例,展示了bind方法如何改变函数调用时的上下文并传递参数。
摘要由CSDN通过智能技术生成
  • bind方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()第一个参数的值,且只是绑定。
Function.prototype.bind1 = function(){
	//将参数拆解为数组
	const args = Array.prototype.slice.call(arguments)
	
	const t = args.shift()
	console.log('111',t)
	const self = this
	
	return function (){
		return self.apply(t,args)
	}
}

function fn1(a,b,c){
	console.log('this',this)
	console.log(a,b,c)
	return 'this is fn1'
}

const fn2 = fn1.bind1({x:100},10,20,30)
const res = fn2()
console.log(res)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值