Function有apply和call两个方法,方法声明如下:
AS3 function apply(thisArg:*,argArray:*):*
AS3 function call(thisArg:*,...args):*
下面根据我的理解说说这两个方法的用法:
假设老板有两个员工 张三和李四,张三有一个加薪方法
//staffA的方法 public function addSalary(value:uint):void
如果老板想给张三加薪,只需一句代码
张三.addSalary(1000)//加薪1000
而李四没有加薪的方法,老板也想给李四加薪,怎么办?现在call就派上用场了
张三.addSalary.call(李四,1000);//给李四加薪1000
apply和call的用法类似,apply用在函数参数个数不定时,将参数以数组的方式传入。
上面的代码也可以这样写:
张三.addSalary.apply(李四,[1000]);
总结:apply和call的作用就是改变了函数里面thisArg的指向。