Functions

#HelloFrontend #HelloErmine #HelloWorld2021

Function คืออะไร ?

คือ ชุดคำสั่งที่รวมคำสั่งอื่น ๆ เอาไว้ เมื่อเรียกใช้งานแล้วจะทำคำสั่งภายในตัวมันเองจนเสร็จ

โดยเราสามารถกำหนดให้ function รับค่าเพื่อนำมาใช้ภายในตัว function ได้ และเราจะส่งค่ากลับไปยัง code ส่วนที่เรียกใช้หรือไม่ก็ได้

function sum(a, b) {
    const result = a + b;
    return result;
}
 
console.log(sum(5, 27)); // 32

จากตัวอย่าง เราต้องการรับค่า a และ b มาใช้ภายใน function จากนั้นเราคำนวณผลบวกของ a และ b แล้วส่งค่ากลับไปยัง code ที่เรียกใช้ function ด้วยคำสั่ง return

Parameter และ Argument คืออะไร ?

  • parameter คือ ค่าที่ function ต้องการจะรับ (จากตัวอย่างข้างบน คือ a และ b)

  • argument คือ ค่าที่ function ได้รับตอนถูกเรียกใช้ (จากตัวอย่างข้างบน คือ 5 และ 27)

การรับ object หรือ array มาใช้ใน function

หากค่าที่ function รับมาเป็น object หรือ array แล้วเราแก้ไขโดยตรง ค่าที่อยู่ข้างในจะถูกแก้ไขไปด้วย

Nested functions

เราสามารถประกาศ function ภายใน function ได้

โดย function ข้างในสามารถเข้าถึงค่าที่อยู่ข้างนอกได้ และสามารถเรียกใช้ได้จากภายใน function ที่ประกาศตัวมันขึ้นมาเท่านั้น

Closures

JavaScript จะสร้างสิ่งที่เรียกว่า closure เมื่อมีการประกาศ nested function โดยเป็นเหมือนกับการผูกค่าหรือตัวแปรของ function ข้างนอกไว้กับ function ข้างใน

ทำให้ function ข้างในสามารถเข้าถึงค่าของ function ที่อยู่ข้างนอกได้ แม้ว่า function ข้างนอกจะทำงานเสร็จไปแล้ว

จากตัวอย่างเรา return innerKrub ที่เป็น function ออกมาเพื่อเรียกใช้นอก outerKrub โดยใช้ชื่อว่า callLaterNa

เมื่อเรียกใช้ callLaterNa จะพบว่ายังคงเข้าถึงค่า msg ที่ประกาศใน outerKrub ได้อยู่ แม้ว่า outerKrub จะทำงานเสร็จไปแล้ว

Arrow functions

เป็น expression แบบสั้น ๆ สำหรับใช้ประกาศ function

จากตัวอย่าง ถ้าใน function มีเพียง return statement เราสามารถนำค่าที่จะ return มาวางหลัง => ได้เลย

รูปแบบการใช้งาน

  • มี parameter ตัวเดียว ไม่ต้องใส่ ( )

  • ไม่มี parameter หรือมี parameter 2 ตัวขึ้นไป ต้องใส่ ( )

  • ใน function ที่มีมากกว่า 1 statement ต้องใส่ { } และ return

แหล่งอ้างอิง 📑

Last updated

Was this helpful?