2010-07-05 49 views
0
var b:Boolean = condition1() && condition2(); 

在本聲明中,如果condition1()的計算結果爲false,將會評估condition2()嗎?在actionscript中是否是&&操作符?

+1

你試過了嗎?您可以在條件1和條件2中都放置一個trace()調用,然後查看哪些被調用。幫助使用跟蹤命令:http://www.republicofcode.com/tutorials/flash/as3trace/ – Douglas 2010-07-05 11:06:17

回答

0

正確。編譯器應該總是從條件中取出最快的路徑。如果任何測試用例失敗,編譯器知道進一步測試的結果是不相關的,並決定當時和那裏保釋。

var obj:Object = null; 
if(obj && obj.name == "fred") 
{ 
    trace("Hi, fred."); 
} 

你永遠不會看到「嗨,弗雷德」。因爲Obj是空的。好東西,因爲第二個測試用例會拋出一個錯誤,因爲你不能以這種方式解引用空對象。當我需要確保某個對象在取消引用之前不是空的時候,我已經多次使用這個特定的方法。

相關問題