Tham số của hàm ngoài và hàm trong JavaScript
Hãy để cả hàm ngoài và hàm trong đều nhận tham số:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Hãy truyền tham số của hàm ngoài vào lời gọi của hàm trong:
function test(num) {
function func(localNum) {
console.log(localNum); // sẽ in ra 1
}
func(num); //!! truyền tham số
}
test(1); // truyền một số làm tham số
Kết quả là, trong hàm trong sẽ
có thể truy cập biến num như một biến
bên ngoài từ hàm cha và biến
localNum, là biến cục bộ
của hàm trong.
Cả hai biến này sẽ có cùng giá trị:
function test(num) {
function func(localNum) {
console.log(num); // sẽ in ra 1
console.log(localNum); // sẽ in ra 1
}
func(num);
}
test(1);
Sự khác biệt giữa chúng sẽ như sau: nếu
trong hàm trong, chúng ta thay đổi biến
num - nó cũng sẽ thay đổi trong hàm ngoài:
function test(num) {
function func(localNum) {
num = 2; // thay đổi biến num
}
func(num); // truyền tham số
console.log(num); // sẽ in ra 2
}
test(1); // truyền một số làm tham số
Còn biến localNum sẽ là biến cục bộ.
Việc thay đổi nó sẽ không dẫn đến bất kỳ
thay đổi nào trong hàm ngoài. Và bản thân
biến localNum cũng sẽ không nhìn thấy
bên ngoài hàm trong:
function test(num) {
function func(localNum) {
localNum = 2; // thay đổi biến num
}
func(num); // truyền tham số
}
test(1); // truyền một số làm tham số
Xác định, không chạy code, điều gì sẽ được in ra trong console:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Xác định, không chạy code, điều gì sẽ được in ra trong console:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Xác định, không chạy code, điều gì sẽ được in ra trong console:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Xác định, không chạy code, điều gì sẽ được in ra trong console:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Xác định, không chạy code, điều gì sẽ được in ra trong console:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Xác định, không chạy code, điều gì sẽ được in ra trong console:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);