function sum(num1,num2) { return num1+num2; } function callsum(num1,num2) { return sum.apply(this,arguments) } alert(callsum(1,2)); //3
callsum内部的sum.apply(this,arguments)中this指代的是什么?我知道单单在全局执行sum.apply(this,arguments),this代表window,但到了函数里面this是什么呢?
人生最曼妙的风景,竟是内心的淡定与从容!
在这个例子里 this 依然是 window,因为调用 callsum() 的时候没有上下文(context)(更正一下:上下文是 window)。如果是:
var a = {}; a.fun = callsum; a.fun();
这时候 callsum 里的 this 指向 a
大家遗漏了一点,在es5严格模式下,函数中的this 是undefined
this为调用所在函数的对象,如果这个对象为null/undefined,那么指向window全局对象
window.alert(callsum(1,2));
参考:Function context 函数上下文
在这个例子里 this 依然是 window,因为调用 callsum() 的时候没有上下文(context)(更正一下:上下文是 window)。如果是:
这时候 callsum 里的 this 指向 a
大家遗漏了一点,在es5严格模式下,函数中的this 是undefined
this为调用所在函数的对象,如果这个对象为null/undefined,那么指向window全局对象
window.alert(callsum(1,2));
参考:
Function context 函数上下文