function add(a,b) {
return a+b
}
var se = seriz(add);
function seriz(fn) {
return function (){
return fn.apply(this,arguments);
}
}
console.log(se(1,2))
看不懂seriz里面的操作,有没有大神简单一下。return function是为啥,fn.apply(this,arguments); this 指向哪?
function add(a,b) {
return a+b
}
var se = seriz(add);
function seriz(fn) {
return function (){
return fn.apply(this,arguments);
}
}
console.log(se(1,2))
看不懂seriz里面的操作,有没有大神简单一下。return function是为啥,fn.apply(this,arguments); this 指向哪?
this的指向简单的说就是谁调用我这个函数,我就指向谁。
上面的代码可以看成是:
var se = function (){
return add.apply(this,arguments);
};
console.log(window.se(1,2));
se最后是被window调用,所以它内部的this最终指向window。
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答843 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
1、return function 这个是因为上面的se变量要赋予一个函数。
2、fn.apply(this,arguments);这个this指像是window,window下是没有arguments,所以需要apply方法来指向fn,也就是add,如果直接执行fn(arguments)的话是会报undefined的