Javascript 中 apply 、call、argument的使用方法

最近压力很大啊!

apply 与 call 的功能基本相同先看看 apply的用途

// 第一个类

functionclazz1(){

this.name="刘德华";

}

clazz1.prototype.func = function(){

alert(this.name);

}

//第二个类

functionclazz2(){

this.name="周杰伦";

}

var clz1 = new clazz1();

//调用自己的方法

clz1.func();

//定义一个clazz2的对象并且调用clazz1的func方法

varclz2=newclazz2();

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