Tipo de funções no Action Script 3.0

Dependendo do seu estilo de programação, você pode usar dois tipos de funções no Action Script 3.0. Se seu estilo de programação segue a linha mais estatica ou “Strict Mode”, você usará funções do tipo declarada, caso seu estilo de programação seja mais dinâmico, usará funções do tipo expressa ou “Standard Mode”.

Para declarar uma função declarada você cria uma palavra chave “function” seguido:

  • O nome da função
  • O parametros declarando seus tipos de dados separados por (,) vírgula e entre parenteses.
  • O corpo da função. ou seja, o código que será executado entre chaves

Por exemplo:
[as]
function traceParameter(aParam:String) {
trace(aParam);
}
traceParameter(“hello”); // output: hello
[/as]

Esse estilo é o que começamos aprendendo e estamos mais acostumados.
O segundo jeito de declarar uma função, é como função expressa, também chamada de função literal ou função anônima. É usada com uma programação mais avançado no action script 3.0.

Para declarar uma função expressão você cria uma palavra chave “var” seguido:

  • O nome da função.
  • Dois pontos (:).
  • Declara a variavel com tipo “Function”.
  • O operdaror (=).
  • A palavra chave “function”.
  • Declara os parametros e seus tipos de dados.
  • O corpo da função entre chaves {}.

Por exemplo:
[as]
var traceParameter:Function = function (aParam:String) {
trace(aParam);
};
traceParameter(“hello”); // output: hello
[/as]

Note que você não especifica o nome da função como é feito nas funções declaradas. Outra diferença importante é que nas funções expressas, se torna uma expressão melhor que uma função declarada. Isto significa que uma função expressa não pode estar dentro dela mesma enquanto que uma função declarada pode. Uma função expressa pode ser usada somente como uma parte de uma declaração, geralmente uma declaração de atribuição. O seguinte exemplo mostra uma função expressa atribuída a um elemento de disposição:

[as]
var traceArray:Array = new Array();
traceArray[0] = function (aParam:String) {
trace(aParam);
};
traceArray[0](“hello”);
[/as]

Fonte:
http://livedocs.macromedia.com/flex/2/docs/wwhelp/wwhimpl/js/html/wwhelp.htm?href=Part5_ProgAS.html

Leave a Reply