bind的模拟和实现

bind函数的作用

改变this指向,返回一个新的函数

参数的相关情况

若第一个参数为null,则this指向window;
若参数有值,则this指向该参数;
若新函数被当作构造函数使用时,则第一个参数无效

Function.prototype.myBind = function(target) {
	target = target || window
	let self = this
	let args = [].slice.call(arguments, 1)
	const F = function(){}
	const fn = function() {
		let _arg = [].slice.call(arguments, 0)
		return self.apply(this instanceof F ? this : target, args.concat(_arg))
	}
	F.prototype = this.prototype
	fn.prototype = new F()
	return F
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值