Debug.log(CureentMunu.Name) // มันจะแสดงค่าเดิมจากรอบแรก
CurrentMenu=menu //เปลี่ยนค่าตามตัวแปรที่ประกาศโดยนำเข้าทางพารามิตเรอื
Debug.log(CureentMunu.Name) // ค่าล่าสุด
//ที่ผมสงสัยคือ ถ้า ไม่มี พารามิเตอร์ไปเปลี่ยนค่า CurrentMenu ในฟังก์ชั่น ค่าจะเหมือนตัวแปร CurrentMenu ที่ประกาศไหม
ในตัวอย่างจะเห็นว่า ผมสร้างตัวชื่อ CurrentMenu จากนั้น ลองก็ใส่ค่าหนึ่ง ลงไป
โปรแกรมทำงานจบไปหนึ่งรอบ รอบต่อมา ผมเปลี่ยนค่า ที่ตัวแปรภูมิภาค หรือตัวแปรที่ประกาศไว้ตัวแรก
แต่ว่าตัวแปรท้องถิ่น หรือตัวแปรที่อยู่ในฟังก์ชั่น Showmenu ไม่เปลี่ยนตาม
มันจะเปลี่ยนค่าก็ต่อเมื่อ มีพารามิเตอร์ นำค่าจากภายนอกเข้ามา นั้นคือ CurrentMenu = Menu ตัวแปรท้องถิ่นจึงจะมีค่าเหมือนกับตัวแปรภูมิภาค
ถ้าฟังก์ชั่นไม่โดนเรียก ตัวแปรท้องถิ่น ค่าก็ยังเหมือนเดิม ไม่เปลี่ยนตาม ตัวแปรภูมิภาค
มันเป็นเพราะอะไรครับ เขาเรียกว่าอะไรครับ ตอนแรกผมก็เข้าใจผิดว่า ถ้าตัวแปรชื่อเดียวกัน ถ้าจุดใดจุดหนึ่ง มีการเปลี่ยนแปลงค่า มันจะเปลี่ยนตามเหมือนกัน ทุกตัว
ตัวแปรท้องถิ่น กับตัวแปรภูมิภาค ชื่อเดียวกันแต่ค่าภายในไม่อ้างอิงเหมือนกัน ใช่ไหมครับ
Debug.log(CureentMunu.Name) // มันจะแสดงค่าเดิมจากรอบแรก
CurrentMenu=menu //เปลี่ยนค่าตามตัวแปรที่ประกาศโดยนำเข้าทางพารามิตเรอื
Debug.log(CureentMunu.Name) // ค่าล่าสุด
//ที่ผมสงสัยคือ ถ้า ไม่มี พารามิเตอร์ไปเปลี่ยนค่า CurrentMenu ในฟังก์ชั่น ค่าจะเหมือนตัวแปร CurrentMenu ที่ประกาศไหม
ในตัวอย่างจะเห็นว่า ผมสร้างตัวชื่อ CurrentMenu จากนั้น ลองก็ใส่ค่าหนึ่ง ลงไป
โปรแกรมทำงานจบไปหนึ่งรอบ รอบต่อมา ผมเปลี่ยนค่า ที่ตัวแปรภูมิภาค หรือตัวแปรที่ประกาศไว้ตัวแรก
แต่ว่าตัวแปรท้องถิ่น หรือตัวแปรที่อยู่ในฟังก์ชั่น Showmenu ไม่เปลี่ยนตาม
มันจะเปลี่ยนค่าก็ต่อเมื่อ มีพารามิเตอร์ นำค่าจากภายนอกเข้ามา นั้นคือ CurrentMenu = Menu ตัวแปรท้องถิ่นจึงจะมีค่าเหมือนกับตัวแปรภูมิภาค
ถ้าฟังก์ชั่นไม่โดนเรียก ตัวแปรท้องถิ่น ค่าก็ยังเหมือนเดิม ไม่เปลี่ยนตาม ตัวแปรภูมิภาค
มันเป็นเพราะอะไรครับ เขาเรียกว่าอะไรครับ ตอนแรกผมก็เข้าใจผิดว่า ถ้าตัวแปรชื่อเดียวกัน ถ้าจุดใดจุดหนึ่ง มีการเปลี่ยนแปลงค่า มันจะเปลี่ยนตามเหมือนกัน ทุกตัว