这几天在阅读underscore的源码,看到函数方法的时候,遇到一点问题。请大家,帮个忙啦~underscore1.7bind函数源码javascript_.bind=function(func,context){varargs,bound;if(nativeBind&&func.bind===nativeBind)returnnativeBind.apply(func,slice.call(arguments,1));if(!_.isFunction(func))thrownewTypeError('Bindmustbecalledonafunction');args=slice.call(arguments,2);bound=function(){if(!(thisinstanceofbound))returnfunc.apply(context,args.concat(slice.call(arguments)));Ctor.prototype=func.prototype;varself=newCtor;Ctor.prototype=null;varresult=func.apply(self,args.concat(slice.call(arguments)));if(_.isObject(result))returnresult;returnself;};returnbound;};问题实际使用时,哪一种情况会跳过下面的if判断,执行后面的代码?能否举个实例?javascriptif(!(thisinstanceofbound))returnfunc.apply(context,args.concat(slice.call(arguments)));
呼唤远方
相关分类