O documento discute funções em JavaScript, cobrindo três tópicos principais: 1) parâmetros de entrada e saída de funções, 2) exemplos demonstrando o uso de parâmetros, e 3) escopo de variáveis e objetos em diferentes contextos de execução de funções.
2. Parâmetros de uma função
• Parâmetros de entrada
• definem o “protocolo” de comunicação com uma função, ou seja,
explicitam os dados que a função precisa para que possa atingir o seu
objetivo;
• não há um limite formal ao número de parâmetros de uma função;
• na declaração são separados por vírgula;
• podem ser de qualquer tipo de dados.
• Parâmetro de saída
• é o valor devolvido pela função no final da sua execução;
• return valorDevolvido;
• após um return, o código seguinte da função não é executado!
3. Funções: exemplo 2
<head>
<script language="javascript" type="application/javascript">
function helloWorld() //Declaração da função
{
return true; //Qual o resultado da execução desta função?
alert("Hello World!");
}
</script>
</head>
<body>
<script language="javascript" type="application/javascript">
helloWorld();
</script>
</body>
5. Parâmetros: como funcionam?
// Na invocação das funções temos valores,
// ou seja, a lista dos valores que queremos passar para a função
nomeFunção (valor0, valor1,..., valorN);
// Na declaração da função definimos os parâmetros.
// Na sua execução, os parâmetros são transformados em variáveis da função.
// Cada parâmetro é inicializado com o valor passado na respetiva posição.
function nomeFunção(param0, param1,..., paramN)
{
// código da função
// por exemplo, aqui, “param0” é uma variável cujo valor inicial é “valor0”
}
6. Funções: exemplo 3 - passagem de parâmetros
<head>
<script language="javascript" type="application/javascript">
function helloPeople(name) //Declaração da função
{
alert(name);
} nesta invocação da função, ao parâmetro
</script> “name” é atribuído o valor inicial “Manel”
</head>
<body>
<script language="javascript" type="application/javascript">
helloPeople(“Manel”);
</script>
</body>
7. Funções: exemplo 4 - qual o resultado?
<head>
<script language="javascript" type="application/javascript">
function incValores(x, y) //Declaração da função
{
x++;
y++;
alert(x + “ “ + y); // ??
}
</script>
</head>
<body>
<script language="javascript" type="application/javascript">
var a = 4;
var b = 8;
alert(a + “ “ + b); // ??
incValores(a, b);
alert(a + “ “ + b); // ??
</script>
</body>
8. Funções: exemplo 4b - e agora?
<head>
<script language="javascript" type="application/javascript">
function incValores(a, b) //Declaração da função
{
a++;
b++;
alert(a + “ “ + b); // ??
}
</script>
</head>
<body>
<script language="javascript" type="application/javascript">
var a = 4;
var b = 8;
alert(a + “ “ + b); // ??
incValores(a, b);
alert(a + “ “ + b); // ??
</script>
</body>
9. Funções: exemplo 5 - retornar um valor
<head>
<script language="javascript" type="application/javascript">
function factorial(num) //Declaração da função
{
var cont = 0;
var resultado = 1;
for ( cont = num; cont >= 1; cont-- )
{
resultado *= cont;
}
return resultado;
}
</script>
</head>
<body>
<script language="javascript" type="application/javascript">
alert(factorial(parseInt(prompt("Número inteiro?",0)))); // ??
</script>
</body>
10. Funções: exemplo 3b - qual o resultado?
<head>
<script language="javascript" type="application/javascript">
function helloPeople(name) //Declaração da função
{
alert(name);
}
// qual o valor de “name” neste ponto?
</script>
</head>
<body>
<script language="javascript" type="application/javascript">
helloPeople(“Manel”);
</script>
</body>
11. Visibilidade das variáveis/objetos: scope
• Cada instrução de um script é executada num determinado contexto de
execução...
• um contexto de execução é uma área fechada com propriedades
específicas...
• qualquer identificador utilizado refere-se preferencialmente às variáveis/
objetos locais...
• se esse identificador não é encontrado então saímos do contexto de
execução atual e vamos procurar no contexto “pai”...
• até atingir o nível global da aplicação.
12. Visibilidade/scope: exemplo (1)
<script type="text/javascript">
var ima_celebrity = "Everyone can see me! I'm famous!",
the_president = "I'm the decider!";
function pleasantville() {
var the_mayor = "I rule Pleasantville with an iron fist!",
ima_celebrity = "All my neighbors know who I am!";
function lonely_house() {
var agoraphobic = "I fear the day star!",
a_cat = "Meow.";
}
}
</script>
Exemplo retirado de: http://www.digital-web.com/articles/scope_in_javascript/