js bind方法的实现
Posted huang-gua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js bind方法的实现相关的知识,希望对你有一定的参考价值。
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 // 并且组合两次分别传入的参数,作为新函数的参数 } }; var obj = { name: ‘sven‘ }; var func = function( a, b, c, d ){ alert ( this.name ); // 输出:sven alert ( [ a, b, c, d ] ) // 输出:[ 1, 2, 3, 4 ] }.bind( obj, 1, 2 ); func( 3, 4 );
以上是关于js bind方法的实现的主要内容,如果未能解决你的问题,请参考以下文章