两者使用的目的:改变调用的函数体内部的this的指向。 相同点:均是调用某对象的方法,格式:obj.函数名.call() call(obj,参数1,参数2):两个参数,前者将代替Function类里this对象,后者(多个元素)作为参数传递给被调用的函数。
12345678910var foo = { name:"name1", logName:function(){ console.log(this.name); }}var bar={ name:"name2"};foo.logName.call(bar);//name2
apply(obj,[参数1,参数2]),同上,不同点是第二个参数是数组。(将数组的每个元素作为一个个参数传递给被调用的函数,性质与call()方法一样)
利用apply()这一特性的一些小场景:
12345678910//求数组的最大值var arr = ...
.jpg)