看行代码,不大懂!

Function.prototype.bind = function(){

 var self = this, // 保存原函数

 context = [].shift.call( arguments ), // 需要绑定的 this 上下文//***这行代码不不理解***

 args = [].slice.call( arguments ); // 剩余的参数转成数组

 return function(){ // 返回一个新的函数

 return self.apply( context, [].concat.call( args, [].slice.call( arguments ) ) );

 // 执行新的函数的时候,会把之前传入的 context 当作新函数体内的 this

 // 并且组合两次分别传入的参数,作为新函数的参数

 }

 }; 

 

context = [].shift.call( arguments ); 这代码有点不理解


慕容森
浏览 522回答 1
1回答

繁华开满天机

这行代码的作用是拿到第一个参数,赋值给context。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript