関数2

イテル on 07 31, 2009

090705-one31

ネストされた関数

関数に書く関数ってことかな。
この関数の中の関数は、親の関数からのみ使用できるらしい。

//メソッドiteru
public function iteru(){
	//ネストされた関数ito()の呼び出し
	ito();

	//ネストされた関数ito()の定義
	function ito(){
		//関数本体をここに記入
	}
}

関数iteruの中で、なんか面倒な処理をさせたい場合に、
面倒な処理を関数itoで実行してしまうって方法。
複雑な計算で、しかも同一関数内で何度も使いそうな場合に使えるかも。

ソースファイルレベルの関数

同一ファイル内のパッケージ本体外に書いた関数は、
同じファイル内からだったらどこからでも利用できるっぽい。

package{
	//ここでもitoは使用可能
	class iteru(){
		//ここでもitoは使用可能
		public function iteru(){
			//ここでもitoは使用可能
		}
	}
}
function ito(){
	//itoの処理
}

ちなみに、この関数itoには「function」や「internal」などの
アクセス制御指定子は含めてダメらしい。

関数内からの定義へのアクセス

どこに関数を置くかによって、そのプログラムの
定義(変数、メソッド、クラス、名前空間など)に
アクセスできるかが決まるらしい。
詳細説明省略。

値としての関数

関数はインスタンスによって表されるので、
値と同じように変数に代入したりすることができる。

function iteru(){
	//プログラム
}
var ito=iteru;

こうすることによって、

ito();

とすると、結果的に「iteru()」を呼びだすことになるらしい。

関数リテラルのシンタックス

よくわからんかったw

var square = function(n){
	return n * n;
}

square(5);

この方法はsetInterval関数と併用して使用されることがあるらしい。

package{
	import flash.utils.setInterval;

	public class iteruClock{
		public function iteruClock(){
			//1秒おきに関数リテラルを実行
			setIntval(function(){
				trace("iteru-tick!");
			} , 1000 );
		}
	}
}

Leave a Reply