作用与大家都知道,这里说说AS3中间比较容易出问题的地方。
如果需要调用一个全局方法,可以用 this.["functionname"]()的方式。因为this默认全局。
如果使用闭包,那么闭包之外的大括号就是作用域。那么如果遇到for的情况会发生什么呢?
答案是:最后一次循环环境作为所有必报的作用域。
显然这不是我们想要的,那如何避免呢?
使用如下方法:
原理是在外面包一层 Function。这层作用域保存了值,然后作为参数传给闭包。
特别鸣谢 波子同学
如果需要调用一个全局方法,可以用 this.["functionname"]()的方式。因为this默认全局。
如果使用闭包,那么闭包之外的大括号就是作用域。那么如果遇到for的情况会发生什么呢?
答案是:最后一次循环环境作为所有必报的作用域。
显然这不是我们想要的,那如何避免呢?
使用如下方法:
//代理函数
public static function bind(obj : *, func : Function, ...arg) : Function{
return function() : * {
return func.apply(obj, arg);
};
}
原理是在外面包一层 Function。这层作用域保存了值,然后作为参数传给闭包。
特别鸣谢 波子同学