ActionScript 3中的函数—《Flash ActionScript 3殿堂之路》学习笔记
两种定义方法:函数语句定义: function add(a:int,b:int):int{ return a+b; }函数表达式定义: var add:Function =function(a:int,b:int):int{ return a + b ; } 两者区别:在定义位置上,函数语句定义的函数在编译时会被提升到最前面,而函数表达式定义的只能先定义再使用,只有定义后面的语句才能成功调用。函数语句定义法和函数表达式定义法还体现再函数中this关键字的记忆上。使用函数语句定义,则this关键字牢牢指向当前函数定义的域;而使用函数表达式定义的,则随着函数附着的对象不同,this关键字也随之改变。内存管理、垃圾回收上的区别。因为函数表达式不像对象那样独立存在,它相当于一个匿名函数。当持有这个函数引用的数组或对象脱离作用域或由于其他原因不可再用,那么将没有任何方法再访问该匿名函数。此时,这匿名函数对象引用计数为零,符合垃圾回收条件,将被回收。函数表达式定义的函数是动态的,因此给我们带来极大的便利,而函数语句定义的相反。