2010年3月31日 星期三

ActionScript 3.0 Closure(封合、閉鎖) 初探

初步測試,運作良好。
使用getPow這個函式工廠取回的function中的傳入值v,正確的被記住。
下一步測試其範圍。


<?xml version="1.0" encoding="utf-8"?>
<s:Application creationComplete="init()" xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Script>
        <![CDATA[
            protected function init():void
            {
                var pow2:Function    =    getPow(2);
                var pow3:Function    =    getPow(3);
                
                trace(pow2(2));    //4
                trace(pow3(2));    //8
            }
            
            private function getPow(v:int):Function
            {
                return function (x:int):int
                    {
                        return Math.pow(x , v);
                    }
            }

        ]]>
    </fx:Script>
</s:Application>

沒有留言:

張貼留言

追蹤者