猿问

bind()函数里面为什么返回函数里要用return fn.apply(context,arguments)而不是fn(arguments)

fucntion bind(fn,context){

return function(){

    return fn.apply(context,arguments);

};

}还有,为什么要返回两次,不能直接返回return fn.applay(context,arguments)?

麻烦老师解答!!

qq_犬夜叉_0
浏览 1546回答 1
1回答

李晓健

fn.apply(context,arguments);  是为了绑定作用域,也就是说fn中的this应该指向谁。fn.apply(context,arguments); 会直接把fn方法执行掉,调用bind后需要返回一个方法,所以就会有两次返回,这样的话当你执行bind时就会得到一个方法
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答