分析apply,call方法
Math.min.apply(null,arr) 这种方法用于求一个数组中的最小值,这令我很困惑,我不知道为甚么apply的第一个参数为什么重新传入Math对象
我打算从两点进行分析
1.Math.min()
2.apply,call方法
先是一:
Math.min中可以获取一串数字的最小值,格式为:Math.min(1,2,6,10,0,4)
这样可以直接获取最小的数,请注意是这种格式的写法,因为我们的需求是从数组中寻找
我们大概了解了其一
然后二:
apply和call方法是改变this指向
举个例子:
var obj = { age:20, sayAge:function () { console.log(this.age) } } obj.sayAge() //是obj中的20 var obj2 = { age:1000 } obj.sayAge.call(obj2) //是obj2中的1000
call和apply方法就是在原有的方法上改变了this的指向,变成了括号内那个对象
call和apply两者区别就是前者直接写参数,后者是数组
obj.sayAge.call(obj2,1,2,3)
obj.sayAge.call(obj2,[1,2,3])
但是这些并没有解决我想要的问题
call和apply除了改变函数的this指向外,还有什么?---apply可以改变传递给函数参数的形式
function fn(arg1,arg2,arg3,...){
//....
}
fn(1,2,3)
fn.apply.(null,[1,2,3])
apply改变了参数的传入形式
网上的资料众多纷纭,根本找不到我想要的结果,
希望大家见谅并积极指出...