看了一个大佬写的:Function.prototype.bind = Function.prototype.bind || function (context) { var me = this; var args = Array.prototype.slice.call(arguments, 1); var F = function () {}; F.prototype = this.prototype; var bound = function () { var innerArgs = Array.prototype.slice.call(arguments); var finalArgs = args.concat(innerArgs); return me.apply(this instanceof F ? this : context || this, finalArgs); } bound.prototype = new F(); return bound;}这个是怎么做兼容的啊,大佬尽量讲详细点。还有bind this失效的具体场景?
1 回答
慕哥6287543
TA贡献1831条经验 获得超10个赞
bind第一个参数是上下文,也就是this指向,其余的参数是后续要传给待绑定的函数的参数,可以是部分,也可以是全部
里面声明了一个函数,这个函数是需要返回的;需要重新设置它的原型链,指向原来的函数的原型链;这个函数就是绑定好的函数,这个函数需要把传来的参数与先前的参数拼在一起,然后在绑定的上下文调用
不清楚你所说的this失效是什么
添加回答
举报
0/150
提交
取消