借助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
點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦