[].shift.call( arguments )和 [ ].slice.call( arguments )怎么理解

Function.prototype.bind = function(){
        var self = this, 
        context = [].shift.call( arguments ), 
        args = [].slice.call( arguments );
        return function(){
        return self.apply( context, [].concat.call( args, [].slice.call( arguments ) ) );
    }
    };
    var obj = {
        name: 'sven'
    };
    var func = function( a, b, c, d ){
        alert ( this.name ); 
        alert ( [ a, b, c, d ] ) 
    }.bind( obj, 1, 2 );
    func( 3, 4 )
阅读 5.5k
2 个回答

已经知道了,借用Array.protptype原型上的方法对传进来的参数进行一个操作

新手上路,请多包涵

图片描述

多了一个参数context为什么会这样子呢,shift不应该去除arguments的第一个参数并返回吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题