การคิดเชิงนามธรรม คือ การคัดแยกแค่สิ่งที่สำคัญออกจากรายละเอียดทั้งหมดของปัญหา เพื่อให้ได้องค์ประกอบที่เพียงพอและกระชับที่สุด

ในการเขียนโปรแกรม เราใช้วิธีการคิดเชิงนามธรรมโดยการเขียน function

Function มี data type

  • data type ของ function คือ object
  • function ใน ​JavaScript เป็น first-class object
  • สามารถกำหนด (assign) function ให้เป็นค่าของตัวแปรได้
  • object มี property และ method

Function มี property

ตัวอย่าง property .name บอกชื่อ function ที่ถูกอ้างถึงในตัวแปร

Function มี method

ตัวอย่าง method .toString( ) ปริ้นท์ source code ของ function ออกมาเป็น string

ดู Properties และ Methods อื่นๆ ของ function ได้ที่นี่

Higher-Order Function

ลักษณะของ higher-order function

  • มี parameter เป็น function (callback function)
  • มี return statement เป็น function
  • หรือมีทั้งสองอย่างด้านบน
  • findWordLength เป็น Higher-Order Function
  • มี callback function เป็น anonymous function x => x.length (เขียน function แบบ concise body arrow)
  • findWordLength มี 2 parameter ตัวแรกรับเป็น array ตัวที่สองรับเป็น function
  • สร้าง array ว่างเพื่อเก็บผลลัพท์ที่ได้จากการเรียก callback function บนสมาชิกของ array ชื่อ arr1
  • ใช้ for loop วนหาค่า index ของ (arr1[i])
  • เรียก callback function หลังจากได้ค่า index ของ array
  • callback function เรียก length property ทำให้ได้จำนวนตัวอักษรของแต่ละคำใน array