// 思路:类似call,但返回的是函数
Function.prototype.mybind = function (context) {
if (typeof this !== 'function') {
throw new TypeError('Error')
}
let _this = this
let arg = [...arguments].slice(1)
return function F() {
// 处理函数使用new的情况
if (this instanceof F) {
return new _this(...arg, ...arguments)
} else {
return _this.apply(context, arg.concat(...arguments))
}
}
}
Function.prototype.bind 的用途是什么? #257 举一些ES6对Function函数类型做的常用升级优化? #219 jQuery的事件委托方法bind 、live、delegate、on之间有什么区别?#83