5.5.5 apply,call

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
原文地址:https://www.cnblogs.com/lfhphp/p/14488710.html