Apply
使用指定的对象调用当前函数
由于Javascript函数中的this是谁调用,就指向谁,所以为了可以控制this对象指向,我们可以使用Apply与Call
语法
1 func.apply(thisArg, [argsArray])
可以执行方法,在执行函数的时候,可以改变方法里面this的指向
这两个函数的唯一区别在于,
Apply在改变this指向对象后的参数(第二个)是数组, Call是依次传递参数的
Call 和Apply 在执行中做了两件事
1) 将函数的内部this对象指向了第一个参数
2) 调用函数
1:使用Apply 将数组添加到另一个数组
var list = ['a', 'b'];
var elements = [0, 1, 2];
//list.push(0,1,2)
list.push.apply(null, element)
console.info(list); // ["a", "b", 0, 1, 2]
2:使用apply找出数组中最大/最小值
/* 找出数组中最大/小的数字 */ var numbers = [5, 6, 2, 3, 7]; /* 应用(apply) Math.min/Math.max 内置函数完成 */ var max = Math.max.apply(null, numbers); /* 基本等同于 Math.max(5, 6, 2 ,3 ,7.) */ var min = Math.min.apply(null, numbers);
人生旅途,边走边看...