AS3 函數的兩種聲明方式的區別

在as3中函數可以以運算式的方式聲明或者直接使用聲明語句聲明:

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");
}
arrow
arrow
    全站熱搜

    雞蛋貓異想世界 發表在 痞客邦 留言(0) 人氣()