Function中的apply函数的应用
最近在研究PureMVC源码的过程中发现Function顶级包中的apply函数蛮有意思的,通过这个函数,可以及时的调用不同类中的同一个函数,这是该函数的格式:apply(thisArg:* , argArray:* ):*
指定要在 ActionScript 调用的任何函数内使用的 thisObject
的值。此方法还指定要传递给任何被调用函数的参数。由于 apply()
是 Function 类的方法,所以它也是 ActionScript 中每个 Function 对象的方法。
与 Function.call()
(它将参数指定为用逗号分隔的列表)不同,该方法将参数指定为一个 Array 对象。如果在脚本实际执行前,无法知道要传递的参数的数量,那么这种方法通常很有用。
返回被调用函数指定为返回值的值。
下面例子:
首先定义好接口:
package com.interfaces
{
public interface ITest
{
function testApply(showText:String):void;
}
}
下面是分别定义的四个类:
T1:
package com.custom
{
import com.interfaces.ITest;
public class T1 implements ITest
{
public function T1()
{
}
public function testApply(showText:String):void
{
trace("T1 : "+showText);
}
}
}
T2:
package com.custom
{
import com.interfaces.ITest;
public class T2 implements ITest
{
public function T2()
{
}
public function testApply(showText:String):void
{
trace("T2 : "+showText);
}
}
}
T3:
package com.custom
{
import com.interfaces.ITest;
public class T3 implements ITest
{
public function T3()
{
}
public function testApply(showText:String):void
{
trace("T3 : "+showText);
}
}
}
T4:
package com.custom
{
import com.interfaces.ITest;
public class T4 implements ITest
{
public function T4()
{
}
public function testApply(showText:String):void
{
trace("T4 : "+showText);
}
}
}
在主类中测试:
package
{
import com.custom.T1;
import com.custom.T2;
import com.custom.T3;
import com.custom.T4;
import com.interfaces.ITest;
import flash.display.Sprite;
public class TFunctionApply extends Sprite
{
private var testArr:Array = new Array();
public function TFunctionApply()
{
this.showTest();
}
private function showTest():void
{
testArr.push(new T1());
testArr.push(new T2());
testArr.push(new T3());
testArr.push(new T4());
for(var i:int=0;i<this.testArr.length;i++)
{
this.getFun(i).apply(this.getClass(i),["success"]);
}
}
public function getFun(index:int):Function
{
return (this.testArr[index] as ITest).testApply;
}
public function getClass(index:int):ITest
{
return this.testArr[index];
}
private function testFA():void
{
t2.apply(this,["success"]);
}
private function t2(showText:String):void
{
trace("t2 : "+showText);
}
}
}
输出结果为:
T1 : success
T2 : success
T3 : success
T4 : success
是不是很方便,在对接口的编程中很好用。
Function中的apply函数的应用相关推荐
- 关于学习java函数式接口Function中的apply方法的一些感悟
起因是这样的,学习函数式编程的时候学到了Function接口,对于其中的apply方法感到不解,下面贴上我的不解代码 在这里插public class Function接口 {public stati ...
- pandas中Series的apply函数
闲来无事 浏览源码 发现了一个特别有意思的函数 Series中的apply()函数 和大多数apply函数一样,这个函数传入的参数也是一个函数,目的是对传入的series的值进行批量的处理,不用我们手 ...
- 理解与使用Javascript中的回调函数
在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被"存储"在变量中,能作为函数参数被传递,能在函数中被创建, ...
- 【JavaScript】理解与使用Javascript中的回调函数
在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被"存储"在变量中,能作为函数参数被传递,能在函数中被创建, ...
- woe分析_Python数据分析—apply函数
在对海量数据进行分析的过程中,我们可能要把文本型的数据处理成数值型的数据,方便放到模型中进行使用.也可能需要把数值型的数据分段进行处理,比如变量的woe化.而这些操作都可以借助python中的appl ...
- if函数python_python pandas实现excel中的if 函数(一)
excel中,if函数的使用非常普遍.如果通过pandas可以有好几种方法,核心还是通过if语句实现.下面我来阐述一下: >>> df = pd.read_excel(r'D:/my ...
- python pandas实现excel中的if 函数(一)
excel中,if函数的使用非常普遍.如果通过pandas可以有好几种方法,核心还是通过if语句实现.下面我来阐述一下: >>> df = pd.read_excel(r'D:/my ...
- js中bind、call、apply函数的用法
最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web 的项目,然后在腾讯实习的时候用 js 写过一些奇怪的程序,自己也用 js 写过几个的网站. ...
- 【Python】Pandas中的宝藏函数-apply
apply()堪称Pandas中最好用的方法,其使用方式跟map()很像,主要传入的主要参数都是接受输入返回输出. 但相较于昨天介绍的map()针对单列Series进行处理,一条apply()语句可以 ...
最新文章
- 华为交换机 查看IP和MAC对应关系
- define,require的基本用法
- SAP Marketing Cloud功能简述(一)Contacts和Profiles
- 用BenchmarkDotNet看Property
- stl vector 函数_vector :: back()函数以及C ++ STL中的示例
- C#中通过代码控制IIS服务重启
- day16 java中的package和import
- 本科生如何系统地学习前端开发?
- 高性能mysql 附录D explain执行计划详解
- 20171129-构建之法:现代软件工程-阅读笔记
- 新手学习Linux——搭建个人论坛
- 【POJ 2449】第K短路【A*算法】
- JS对大陆车牌照的归属地(省份和城市)加载和显示
- 嵌入式学习--1线协议(以ds18b20为例)
- 使用 Anaconda 安装 Pytorch
- [转载] 高校两院院士名单
- 项目开发之微信支付接口调用
- IFM分量包络解调分析MATLAB,[原创]数据包络分析(DEA)简介
- Android获取wifi的ip地址
- html 中二维数组创建,【百度】js基础任务2-二维数组,dom操作
热门文章
- C28xx:File Loader:Data verificaton failed at address 0xxx Please verify target memory and memory map
- 计蒜客 腾讯的一笔画游戏
- 结果填空:马的管辖(超详解版)
- 如何判别假新闻?多模态假新闻检测
- 基于面向对象的权限管理系统设计与实现[1]
- AD18官方原器件库下载及导入方法
- isset和empty以及is_null区别
- Ultra Wideband Wireless Communication
- Direct3D学习手记三:绘制彩色3D物体
- 硬盘坏道终结者---低级格式化