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

实现bind作为new调用时this会失效的问题?

实现bind作为new调用时this会失效的问题?

HUX布斯 2019-03-22 21:18:35
看了一个大佬写的: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个赞

  1. bind第一个参数是上下文,也就是this指向,其余的参数是后续要传给待绑定的函数的参数,可以是部分,也可以是全部

  2. 里面声明了一个函数,这个函数是需要返回的;需要重新设置它的原型链,指向原来的函数的原型链;这个函数就是绑定好的函数,这个函数需要把传来的参数与先前的参数拼在一起,然后在绑定的上下文调用

  3. 不清楚你所说的this失效是什么


查看完整回答
反对 回复 2019-03-24
  • 1 回答
  • 0 关注
  • 307 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信