ฉันเชื่อว่านักเรียนทุกคนที่ยังใหม่กับ JavaScript จะสับสนมากเกี่ยวกับพารามิเตอร์ฟังก์ชั่นที่ผ่าน เหตุผลก็คือไวยากรณ์ของมันแปลกเกินไป คุณกำหนดฟังก์ชั่น
ตัวอย่างเช่น
การทดสอบฟังก์ชั่น (ชื่อ, msg) {return 'hello' + name + msg;}แล้วคุณจะเรียกมันว่าเมื่อโทรได้อย่างไร? คุณสามารถทดสอบ ('Eric'), ทดสอบ ('Eric', 'ยินดีต้อนรับสู่ JavaScript') หรือแม้แต่ส่งผ่านพารามิเตอร์ให้มากที่สุดเท่าที่คุณต้องการและประเภทนั้นเป็นไปตามอำเภอใจ ช่างเป็นสิ่งที่ยอดเยี่ยม นักเรียนที่ศึกษา C ++/C# หรือ Java อาจคิดว่าฟังก์ชั่น overloading อย่างไรก็ตามสิ่งที่ฉันต้องการบอกคุณคือไม่มีฟังก์ชั่นโอเวอร์โหลดใน JavaScript หากคุณกำหนดฟังก์ชั่นสองฟังก์ชั่นที่มีชื่อเดียวกันฟังก์ชั่นที่กำหนดไว้ก่อนจะถูกเขียนทับโดยนิยามในภายหลังซึ่งหมายความว่าผลลัพธ์ที่คุณต้องการสามารถรับได้จากฟังก์ชั่นที่กำหนดในภายหลังเท่านั้น
โอเคมากลับไปที่จุดกันเถอะ ทำไมฟังก์ชั่น JavaScript จึงผ่านไปได้อย่างไม่เป็นทางการ? ก่อนอื่นให้ดูว่าพารามิเตอร์ที่ผ่านทั้งหมดจะถูกเก็บไว้ที่ไหน ในความเป็นจริงในการใช้งานภายในพารามิเตอร์ที่ผ่านทั้งหมดมีอยู่ในอาร์เรย์ ฟังก์ชั่นนี้จะได้รับอาร์เรย์นี้เสมอและไม่สนใจว่าพารามิเตอร์ที่อาร์เรย์มีอยู่เสมอ ตอนนี้มันเข้าใจง่าย เราได้กำหนดฟังก์ชั่น เมื่อโทรพารามิเตอร์สามารถส่งผ่านได้ตามต้องการ มันจะถูกเพิ่มเข้าไปในอาร์เรย์เท่าที่คุณผ่าน หากคุณไม่ผ่านมันพารามิเตอร์ที่เป็นทางการทั้งหมดของคุณจะ 'ไม่ได้กำหนด' จะไม่มีข้อผิดพลาดทางไวยากรณ์ แต่ก็ยากที่จะพูดในแง่ของความหมาย
ตกลงนี่เป็นครั้งแรกที่ฉันเขียนบล็อก ฉันไม่มีความสามารถดังนั้นฉันจึงหัวเราะเยาะคุณ ฉันหวังว่าโพสต์บล็อกนี้จะช่วยคุณได้เล็กน้อย - - -
ฉันรักพวกคุณ!