function sum(num1, num2){ 2. return num1 + num2; 3.} 4.function callSum1(num1, num2){ 5. return sum.apply(this, arguments); // 传入arguments 对象 6.} 7.function callSum2(num1, num2){ 8. return sum.apply(this, [num1, num2]); // 传入数组 9.} 10.alert(callSum1(10,10)); //20 11.alert(callSum2(10,10)); //20
在严格模式下,未指定环境对象而调用函数,则this 值不会转型为window。除非明确把函数添加到某个对象或者调用apply()或call(),否则this 值将是undefined。
call()方法与apply()方法的作用相同,它们的区别仅在于接收参数的方式不同。
function sum(num1, num2){ 2. return num1 + num2; 3.} 4.function callSum(num1, num2){ 5. return sum.call(this, num1, num2); 6.} 7.alert(callSum(10,10)); //20