Flash中 aaa=function(){}與function aaa(){}的分別

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();
例子一可以執行,例子二就不能。

本文章由luar發表。

posted on 2004-05-22 16:17  Liki  阅读(758)  评论(0编辑  收藏  举报

导航