aaa=function(){}与function aaa(){}的区别

      技术迷 2004-7-19 14:2
昨天有空,把JimLee的Blog翻了个遍,找到其中看得懂的,留下来慢慢琢磨。(水平有限呀,呵呵)其中尤其感兴趣的是有关画图的命令与这篇定义函数的两种语法的分析。这些都是我觉得可以用在教学工作中的,课件的制作上能够派上用场。(真是上网不忘工作呀,:-)

今天先记下这篇关于定义函数语法格式的。(其实也是从luar转贴来的。因为讲得很明白,我也用不着什么心得了)

在Flash中定义用户函数用的是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();

例子一可以执行,例子二就不能。
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}
}