AS3 动态的来调整参数
2014-09-15 10:54
78 查看
转自 : http://bbs.9ria.com/forum.php?highlight=function+apply&mod=viewthread&tid=106936
我们在调用函数的时候,有时可能会希望动态的来调整参数。如
someFunction(10,20,30);
复制代码
这样的话,10,20,30这三个参数都是写定在程序中的。有时,我们希望由AS3自己来触发这个函数,即动态的提供10,20,30这个些参数。怎么办呢?这时候就会用到apply方法:
someFunction.apply(null,[10,20,30]);
复制代码
这样运行,我们第一次编写的代码,结果是一致的。但是不同的是,三个参数我们是以一个数组来进行传递的,因此,我们也可以用某一个变量来代替这个数组,如
var arr:Array = [10,20,30];
someFunction.apply(null,arr);
复制代码
有了变量,我们就可以动态的来修改参数了。那apply的第一个参数是做什么用的呢?实际上,他是在函数内部,this的引用目标。我们来看下面的代码:
var fun2:Function = function(a:uint):void{
trace(this);
trace(a);
}
fun2.apply(null,10);
复制代码
可以发现,输出结果为
[object global]
[10]
复制代码
也就是说。默认情况下,函数内部的this并不是我们所在的这个类,而如果我们传递了这个参数:
var fun2:Function = function(a:uint):void{
trace(this);
trace(a);
}
fun2.apply(this,10);
复制代码
你就会发现,输出结果变成了
[object Main]
[10]
复制代码
现在,函数内部的this变成了我们的文档类Main了。
学到一招了没:)
我们在调用函数的时候,有时可能会希望动态的来调整参数。如
someFunction(10,20,30);
复制代码
这样的话,10,20,30这三个参数都是写定在程序中的。有时,我们希望由AS3自己来触发这个函数,即动态的提供10,20,30这个些参数。怎么办呢?这时候就会用到apply方法:
someFunction.apply(null,[10,20,30]);
复制代码
这样运行,我们第一次编写的代码,结果是一致的。但是不同的是,三个参数我们是以一个数组来进行传递的,因此,我们也可以用某一个变量来代替这个数组,如
var arr:Array = [10,20,30];
someFunction.apply(null,arr);
复制代码
有了变量,我们就可以动态的来修改参数了。那apply的第一个参数是做什么用的呢?实际上,他是在函数内部,this的引用目标。我们来看下面的代码:
var fun2:Function = function(a:uint):void{
trace(this);
trace(a);
}
fun2.apply(null,10);
复制代码
可以发现,输出结果为
[object global]
[10]
复制代码
也就是说。默认情况下,函数内部的this并不是我们所在的这个类,而如果我们传递了这个参数:
var fun2:Function = function(a:uint):void{
trace(this);
trace(a);
}
fun2.apply(this,10);
复制代码
你就会发现,输出结果变成了
[object Main]
[10]
复制代码
现在,函数内部的this变成了我们的文档类Main了。
学到一招了没:)
相关文章推荐
- jinfo_动态调整JVM参数(无需重启)(实践)
- jinfo_动态调整JVM参数(无需重启)(实践)
- 又见bug,动态调整SGA参数导致数据库crash
- linux运行时动态调整内核参数工具sysctl学习小结
- sybase数据库参数调整案例
- 动态数组参数
- 表格动态调整(转)
- 用javascript动态调整iframe高度 (ZT)
- 在crystalReport(水晶报表)动态输入参数
- 动态调整打印机纸张大小
- 如何实现动态指定存储过程的参数来可视化建立报表工程
- javascript动态调整iframe高度
- 用javascript动态调整iframe高度
- 如何使用变量给数据源控件参数赋值、如何动态增减数据源控件参数并支持分页
- 一个动态生成表单的checkbox 参数传递解决办法之我解
- 用javascript动态调整iframe高度
- 在ListView中插入动态创建进度条,并实时调整其宽度
- Delphi动态调整打印机纸张
- 动态指定DataGrid中多个参数的超链接列
- 执行动态SQL语句时传入参数