Parâmetros de funções externas e internas em JavaScript
Vamos fazer com que tanto a função externa quanto a interna recebam parâmetros:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Vamos passar o parâmetro da função externa na chamada da função interna:
function test(num) {
function func(localNum) {
console.log(localNum); // exibirá 1
}
func(num); //!! passamos o parâmetro
}
test(1); // passamos um número como parâmetro
Isso significa que na função interna estarão
disponíveis a variável num como uma variável
externa da função pai e a variável
localNum, que é uma variável local
da função interna.
Ambas essas variáveis terão os mesmos valores:
function test(num) {
function func(localNum) {
console.log(num); // exibirá 1
console.log(localNum); // exibirá 1
}
func(num);
}
test(1);
A diferença entre elas será a seguinte: se
na função interna a variável
num for alterada - ela mudará também na função externa:
function test(num) {
function func(localNum) {
num = 2; // alteramos a variável num
}
func(num); // passamos o parâmetro
console.log(num); // exibirá 2
}
test(1); // passamos um número como parâmetro
E a variável localNum será local.
Suas alterações não levarão a nenhuma
mudança na função externa. E a própria
variável localNum não será visível
fora da função interna:
function test(num) {
function func(localNum) {
localNum = 2; // alteramos a variável num
}
func(num); // passamos o parâmetro
}
test(1); // passamos um número como parâmetro
Determine, sem executar o código, o que será exibido no console:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Determine, sem executar o código, o que será exibido no console:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Determine, sem executar o código, o que será exibido no console:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Determine, sem executar o código, o que será exibido no console:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Determine, sem executar o código, o que será exibido no console:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Determine, sem executar o código, o que será exibido no console:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);