Parameters van Eksterne en Interne Funksies in JavaScript
Laat ons dit so maak dat beide die eksterne funksie en die interne funksie parameters aanvaar:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Laat ons die parameter van die eksterne funksie oordra na die aanroep van die interne funksie:
function test(num) {
function func(localNum) {
console.log(localNum); // sal 1 uitdruk
}
func(num); //!! dra parameter oor
}
test(1); // dra 'n getal as parameter oor
Dit beteken dat in die interne funksie die
veranderlike num beskikbaar sal wees as 'n eksterne
veranderlike van die ouerfunksie, en die veranderlike
localNum, wat 'n plaaslike veranderlike van die
interne funksie is.
Albei hierdie veranderlikes sal dieselfde waardes hê:
function test(num) {
function func(localNum) {
console.log(num); // sal 1 uitdruk
console.log(localNum); // sal 1 uitdruk
}
func(num);
}
test(1);
Die verskil tussen hulle sal die volgende wees: as
ons in die interne funksie die veranderlike
num verander - sal dit ook in die eksterne funksie verander:
function test(num) {
function func(localNum) {
num = 2; // verander die veranderlike num
}
func(num); // dra parameter oor
console.log(num); // sal 2 uitdruk
}
test(1); // dra 'n getal as parameter oor
Maar die veranderlike localNum sal plaaslik wees.
Veranderinge daaraan sal nie enige veranderinge
in die eksterne funksie veroorsaak nie. En die
veranderlike localNum self sal nie sigbaar wees
buite die interne funksie nie:
function test(num) {
function func(localNum) {
localNum = 2; // verander die veranderlike num
}
func(num); // dra parameter oor
}
test(1); // dra 'n getal as parameter oor
Bepaal, sonder om die kode te laat loop, wat in die konsole uitgedruk sal word:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Bepaal, sonder om die kode te laat loop, wat in die konsole uitgedruk sal word:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Bepaal, sonder om die kode te laat loop, wat in die konsole uitgedruk sal word:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Bepaal, sonder om die kode te laat loop, wat in die konsole uitgedruk sal word:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Bepaal, sonder om die kode te laat loop, wat in die konsole uitgedruk sal word:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Bepaal, sonder om die kode te laat loop, wat in die konsole uitgedruk sal word:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);