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);

  

 

 

 

 

posted on 2020-05-03 18:58  码农-编程小子  阅读(134)  评论(0编辑  收藏  举报