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

javascript的bind()方法的兼容性写法

javascript的bind()方法的兼容性写法

慕虎7371278 2019-02-15 19:15:39
兼容写法一:if (!function() {}.bind) {Function.prototype.bind = function(context) {    var self = this        , args = Array.prototype.slice.call(arguments);            return function() {        return self.apply(context, args.slice(1));        }};}兼容写法二:if (!Function.prototype.bind) {    Function.prototype.bind = function(oThis) {        if (typeof this !== 'function') {            throw new TypeError(                'Function.prototype.bind - what is trying to be bound is not callable'            );        }        var aArgs = Array.prototype.slice.call(arguments, 1),            fToBind = this,            fNOP = function() {},            fBound = function() {                return fToBind.apply(                    this instanceof fNOP && oThis ? this : oThis,                    aArgs.concat(Array.prototype.slice.call(arguments))                );            };        fNOP.prototype = this.prototype;        fBound.prototype = new fNOP();        return fBound;    };}这两种的区别在哪,哪种写法好,理由?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 604 浏览
慕课专栏
更多

添加回答

举报

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