ActionScript3 函数

 

 ActionScript 3 函数


函数定义:函数是执行特定任务并可以在程序中重复利用的代码块


函数的2种声明方式{


 1 函数语句定义法:
  function testadd(a:int,b:int):int{
  //函数名:testadd 函数参数a,b 函数返回类型 int
   return a + b;
   返回a+b的值
  }


 2 函数表达式定义法:
  var testadd:Function=function(a:int,b:int):int{
   return a + b;
  }


推荐使用第一种函数声明法(函数语句定义法) 因为这种方法更标准 简洁

 

函数声明法1 在编译时被提升(hoisting)到最前


函数表达式定义法2 必须先定义 后使用 应用灵活 很多技巧都是使用此类函数


this 关键字
}


参数操作{


 按值传入:操作单数对象的副本 (基本类型)


 按引用传入:操作参数对象的引用 (复杂类型)


 function test(a:int,b:Array):void{


  a=100; b.push(100);


 }


 var a:int=5; var b:Array=[1,2];


 test(a,b);


 trace(a,b);


}


默认参数:


 function test(i:int=1,b:int=2):int{
  return a + b;
 }


arguments 、...args 和 callee {


 arguments: 数组类型 保存按顺序传入的参数值


 ...args: 数组类型 接受多个参数 保存按顺序传入的参数值


 //一旦在函数中使用了 ...args 则 arguments 关键字不可以再使用


 callee: 当前函数的引用


 function test(a:int=0,b:int=1,c:int=2):void{
  trace("参数长度: "+arguments.length);
  //arguments.length 参数长度
  trace(a+b+c);
  if(a+b+c<6) arguments.callee(a+1,b+1,c+1);
 }


 function test(...args):void{
  trace("参数长度: "+args.length);
  for(var i in args){
   trace(args[i]);
  }


 }


 test(1,2,3,4,5);
 function test(s:String,...args):void{
  for(var i in args){
   trace(s+args[i]);
  }


 }
 test("参数分别是: "1,2,3,4,5);

}


构造函数


方法重载:所谓方法重载(overload method) 是指将写多个同名方法 达到同名的函数实现
不同的功能 这些同名的方法 往往区别于参数的数目 类型 相当于相同名称的多个版本


编译器根据传入的不同参数来调用不同的版本


ActionScript3 不支持方法重载 但我们可以使用 ...args 关键字来实现类似的行为


package {
 import flash.display.Sprite;
 public class OverloadTest extends Sprite{
  public function OverloadTest(){
   Overload("100");
  }
  private function Overload(...args){
   if(typeof(args[0]) == "number"){
    trace("args is Number");
   }else if(typeof(args[0]) == "string"){
    trace("args is String");
   }else{
    trace("args is another type");
   }
  }
 }
}


//重载的重点在于参数的个数和类型和返回类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值