最近压力很大啊!
apply 与 call 的功能基本相同先看看 apply的用途
// 第一个类
function clazz1(){
this.name = "刘德华";
}
clazz1.prototype.func = function(){
alert(this.name);
}
//第二个类
function clazz2(){
this.name = "周杰伦";
}
var clz1 = new clazz1();
//调用自己的方法
clz1.func();
//定义一个clazz2的对象并且调用clazz1的func方法
var clz2 = new clazz2();
clz1.func.apply(clz2);*******************************这里clazz2的对象调用了clazz1的func方法
可以理解为-----》将clz1的func方法应用到claz2上。
下面再举一例
//apply 与 call 的区别
function func1(a,b){
alert(a + b);
}
function func2(a,b){
func1.apply(this,[a,b]);
func1.apply(this,arguments); //arguments内置对象,代表着正在执行的和调用他的函数的变量
func1.call(this,a,b);
}
func2('a','b');
重点来了,apply 与 call 的主要区别就是,call的参数可以有很多个,而apply的方法的参数只有两个,第二个是一个数组,或者javascript的内置对象arguments