在as3中函數可以以運算式的方式聲明或者直接使用聲明語句聲明:
兩種方式在使用時有一些區別,首先如果是在一個類中使用運算式聲明一個函數的話是使用dot語句調用這個函數會有問題,最好用[]方式調用函數,示例如下:
另外如果使用運算式聲明函數的話在聲明之前是不能調用這個函數的,例如:
而直接聲明的函數則可以在聲明之前調用:
function testFunc() {} // 直接聲明
var testFunc:Function = function() {}; // 使用運算式聲明
兩種方式在使用時有一些區別,首先如果是在一個類中使用運算式聲明一個函數的話是使用dot語句調用這個函數會有問題,最好用[]方式調用函數,示例如下:
class Example
{
var methodExpression = function() {}
}
var myEx:Example = new Example();
myEx.methodExpression(); // 在strict mode會發生錯誤,standard mode是正常的
myEx["methodExpression"](); // 這樣調用在strict mode和standard mode都是正常的
另外如果使用運算式聲明函數的話在聲明之前是不能調用這個函數的,例如:
methodExpression(); // run-time錯誤
var methodExpression:Function = function() {
trace("methodExpression");
}
而直接聲明的函數則可以在聲明之前調用:
methodStatement(); // 輸出"methodStatement"
function methodStatement() {
trace("methodStatement");
}
全站熱搜
留言列表