apply()方法
首先我们来看看网上apply()方法的定义:
1. apply()方法能劫持另外一个对象的方法,继承另外一个对象的属性
2.Function.apply(obj,args)方法能接收两个参数 // d第一个参数无关紧要的,下边有例子
3.obj:这个对象将代替Function类里this对象
4.args:这个是数组,它将作为参数传给Function(args–>arguments)
官网中介绍 看看官网怎么说
https://www.w3school.com.cn/js/js_function_apply.asp
apply() 方法与 call() 方法非常相似:
call() 方法分别接受参数。
apply() 方法接受数组形式的参数。
如果要使用数组而不是参数列表,则 apply() 方法非常方便。
我们在数组上模拟 max 方法
使用 Math.max() 方法找到(数字列表中的)最大数字:
Math.max(1,2,3);
console.log(Math.max(1,2,3)) // // 会返回 3
由于 JavaScript 数组没有 max() 方法,因此我们可以应用 Math.max() 方法
eg :
Math.max.apply(null, [1,2,3]); // 也会返回 3 // 第一个参数(null)无关紧要。我并未使用它。
Math.max.apply(Math, [1,2,3]); // 也会返回 3
Math.max.apply(" ", [1,2,3]); // 也会返回 3
Math.max.apply(0, [1,2,3]); // 也会返回 3
在 JavaScript 严格模式下,如果 apply() 方法的第一个参数不是对象,则它将成为被调用函数的所有者(对象)。
在“非严格”模式下,它成为全局对象。