2011年7月17日 星期日

函數運算式的特性


學習 ActionScript 3.0 / ActionScript 語言和語法 / 函數

適用於 Adobe  Flash  Professional CS5 的 ActionScript  3.0 參考__最上層__●Function

一、函數運算式有時又稱為函數常值或匿名函數
二、var 函數名稱:Function = function(參數,...){函數主體}
三、函數運算式不能獨自存在,通常是指定陳述式的一部分
四、在嚴謹模式中,不能使用點語法叫用函數運算式宣告的方法
五、函數運算式更適合用來進行著重執行階段或動態行為方式的程式設計
六、若偏好使用嚴謹模式,但也需要呼叫用函數運算式宣告的方法 :
A. 使用方括號 ([]) 而不使用點 (.) 運算子來呼叫方法,如,myInstance["methodExpression()"]();
B. 將整個類別宣告為動態類別,這樣可以讓您使用點運算子呼叫方法
七、在特定情況下,函數運算式很有用。函數運算式的其中一個常用用法,就是供只用一次就捨棄的函數使用
八、在記憶體管理和記憶體回收方面,函數運算式不會做為物件獨立存在。換句話說,當您將函數運算式指定至另一個物件 (例如陣列元素或物件屬性) 時,您在程式碼中建立該函數運算式的唯一參考。若函數運算式所附加的陣列或物件超出範圍,或是因其它原因無法再使用,您無法再存取該函數運算式。若刪除該陣列或物件,函數運算式所使用的記憶體可供進行記憶體回收,也就是說,該記憶體可開始回收,重新做為其它用途。
九、就函數運算式而言,一旦刪除了運算式所指定的屬性,就不能再使用該函數 (delete)
十、如果函數先用函數陳述式加以定義,則可以做為自身的物件而存在,而且即使刪除所附加的屬性之後,也會繼續存在。delete 運算子只會針對物件的屬性作用,因此即使是刪除函數 stateFunc() 本身的呼叫也沒有作用。
十一、函數陳述式在所定義的範圍中一直都存在,包括出現在函數陳述式之前的陳述式中。對照之下,函數運算式則只為後續陳述式定義。函數運算式在定義之前無法使用。

沒有留言: