为了账号安全,请及时绑定邮箱和手机立即绑定

借助apply手写bind方法

        之前看过很多次bind方法的用法,每次看了只是当时明白,平时很少使用到,更没有手写过它的实现,今天在学习设计模式的过程中又遇到了,决定对着bind撸一哈,于是乎就有了下面这一段:

Function.prototype._bind = function(){	var _this = this;	var context = Array.prototype.shift.call(arguments); // 获取this绑定的对象	var args = Array.prototype.slice.call(arguments); // 获取第一次传入的参数并转为数组格式	return function () { // 返回新函数		var argument = Array.prototype.slice.call(arguments);		_this.apply(context, Array.prototype.concat.call(args, argument)); // 第一次传入的参数拼接后面传入的参数	}};function sum(a, b, c) {	console.log(this.total, a + b + c);}var obj = {	total: ''}sum.bind(obj)(4, 2, 3); // 9sum._bind(obj, 4, 2)(3); // 9


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消