//by luar
aaa=function(){}與function aaa(){}兩者都是用來定義函數的語法,一般使用上,兩者沒有分別,但是實踐上兩者有以下分別:
分別一
前者, 如果呼叫函數在定義函數前執行, 是無效的:
aaa();
aaa = function () {
trace("me");
};
但後者是有效的:
aaa();
function aaa() {
trace("me");
}
因為後者在整個Action Panel中程序是優先執行,前者則跟隨程序所在順序執行。
分別二
前者叫Forward Referening,可以直接將函數定義在指定Object/Movie Clip:
mc.aaa = function() {
trace("me");
};
後者將函數定義在目前Timeline(Main Movie或某Movie Clip)中, 無法在Object裡定義。
分別三
前者語法函數可以動態產生,後者語法不能夠,試看看以下兩個例子:
例子一
b = 1;
if (b == 1) {
aaa = function () {
trace("me");
};
}
aaa();
例子二
b = 1;
if (b == 1) {
function aaa() {
trace("me");
}
}
aaa();
例子一可以執行,例子二就不能
\\aaa=function(){}不可帶參數
function aaa(){}則可帶參數(地球人都知道)
如aaa=function(nam){trace(nam)}
不能正確執行
///
我觉得官方的文件一般都是用 function 名称
不太习惯第一种
aaa=function(){}與function aaa(){}兩者都是用來定義函數的語法,一般使用上,兩者沒有分別,但是實踐上兩者有以下分別:
分別一
前者, 如果呼叫函數在定義函數前執行, 是無效的:
aaa();
aaa = function () {
trace("me");
};
但後者是有效的:
aaa();
function aaa() {
trace("me");
}
因為後者在整個Action Panel中程序是優先執行,前者則跟隨程序所在順序執行。
分別二
前者叫Forward Referening,可以直接將函數定義在指定Object/Movie Clip:
mc.aaa = function() {
trace("me");
};
後者將函數定義在目前Timeline(Main Movie或某Movie Clip)中, 無法在Object裡定義。
分別三
前者語法函數可以動態產生,後者語法不能夠,試看看以下兩個例子:
例子一
b = 1;
if (b == 1) {
aaa = function () {
trace("me");
};
}
aaa();
例子二
b = 1;
if (b == 1) {
function aaa() {
trace("me");
}
}
aaa();
例子一可以執行,例子二就不能
\\aaa=function(){}不可帶參數
function aaa(){}則可帶參數(地球人都知道)
如aaa=function(nam){trace(nam)}
不能正確執行
///
我觉得官方的文件一般都是用 function 名称
不太习惯第一种
回复Comments
作者:
{commentrecontent}