พารามิเตอร์ชื่อเดียวกันใน JavaScript
ตอนนี้ให้ฟังก์ชันภายนอกและฟังก์ชันภายใน มีพารามิเตอร์ชื่อเดียวกัน:
function test(num) {
function func(num) {
console.log(num); // จะแสดง 1
}
func(num);
};
test(1);
ในกรณีนี้ภายในฟังก์ชันภายในจะมี
ตัวแปรโลคัล num การเปลี่ยนแปลงมัน
ภายในฟังก์ชันภายในจะไม่ส่งผลใดๆ
ต่อตัวแปรภายนอก num:
function test(num) {
function func(num) {
num = 2; // เปลี่ยนตัวแปรโลคัล num
}
func(num);
console.log(num); // จะแสดง 1 - ไม่มีอะไรเปลี่ยนแปลง
}
test(1);
ผลลัพธ์คือฟังก์ชันภายในไม่สามารถ
เข้าถึงตัวแปรภายนอก num
เพื่อที่จะเปลี่ยนแปลงมันได้เลย:
function test(num) {
function func(num) {
// ที่นี่ไม่สามารถเข้าถึงตัวแปรภายนอก num ได้
}
func(num);
}
test(1);
กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดง ในคอนโซล:
function test(num) {
function func(num) {
console.log(num);
}
func(num);
}
test(1);
กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดง ในคอนโซล:
function test(num) {
function func(num) {
num = 2;
}
func(num);
console.log(num);
}
test(1);
กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดง ในคอนโซล:
function test(num) {
function func(num) {
console.log(num);
}
num = 2;
func(num);
}
test(1);
กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดง ในคอนโซล:
function test(num) {
function func(num) {
console.log(num);
}
func(num);
num = 2;
}
test(1);