2011-04-07 81 views
0

有沒有方法將方法範圍參數的默認值設置爲調用者?AS3方法的默認調用者值

在AS3中,你可以爲方法參數設置默認值,像這樣:

function myFuntion(param1:String="hello",param2:int=3) { 

而且你可以這樣傳遞給對象的引用:

//method of Class1 
function myFuntion(obj:Object) { } //do something with obj 

//in Class2 
var class1:Class1 = new Class1(); 
class1.myFunction(this); 

所以現在的問題,是有沒有可以使用的關鍵字如:

//method of Class1 
function myFuntion(obj:Object = CALLER) { } //do something with obj 

//in Class2 
var class1:Class1 = new Class1(); 
class1.myFunction(); 

回答

2

接受的唯一默認功能參數值fo r類型Object是'null'。

function myFunction(obj:Object = null):void {}; 

var class1:Class1 = new Class1(); 
class1.myFunction(); 
+0

是的,在文檔arguments.callee文檔似乎多一點閱讀。 – shanethehat 2011-04-07 12:19:57

1

不,你沒問題,這對於封裝和代碼可讀性來說是件好事。你應該被迫刻意通過這個,這樣任何讀任何人都清楚Class2.as你的函數被引用。

一般來說,你應該問自己「爲什麼?」任何時候你有一個功能參數的類型對象(這是相當一般的!)。我並不是說從來沒有一個好的理由 - 例如爲了錯誤報告的目的,但是往往這是糟糕的OOP設計的標誌(例如,使用一個對象,因爲你太懶惰,無法做出正確的數據結構類爲你傳遞,或規避類型檢查)