Function.prototype.myBind = function (context) {
var self = this
var args = [].slice.call(arguments, 1)
var Nop = function () { }
var bindfunc = function () {
var bindargs = [].slice.call(arguments)
var finalargs = args.concat(bindargs)
//new 创建的this会只想自己构造函?数对应的实例,如果直接执行this指向window
self.apply(this instanceof self ? this : context, finalargs)
}
//绑定后的函数原型指向 调用方法的原型
Nop.prototype = this.prototype
bindfunc.prototype = new Nop()
return bindfunc
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。