ฟังก์ชันบริสุทธิ์
ฟังก์ชันบริสุทธิ์ เป็นฟังก์ชันกำหนด . ซึ่งหมายความว่าเมื่อมีการส่งผ่านอินพุตเดียวกันทุกครั้ง ฟังก์ชันจะส่งกลับเอาต์พุตเดียวกัน ในทางคณิตศาสตร์ มันไม่ใช่อะไรนอกจากฟังก์ชันที่กำหนดไว้อย่างดี
ฟังก์ชันบริสุทธิ์ จะมีคุณสมบัติดังต่อไปนี้
-
ขึ้นอยู่กับข้อโต้แย้งของตัวเอง
-
มันจะไม่พยายามเปลี่ยนตัวแปรนอกขอบเขต
-
ไม่ก่อให้เกิดผลข้างเคียง
ตัวอย่างต่อไปนี้ไม่ใช่ ฟังก์ชันบริสุทธิ์ เพราะแทนที่จะขึ้นอยู่กับตัวแปรของตัวเอง ฟังก์ชันจะขึ้นอยู่กับตัวแปร (val1 และ val2) ที่อยู่นอกขอบเขต
ตัวอย่าง
<html> <body> <script> let val1 = 6; let val2 = 4; function pure() { return val1 * val2; } document.write(pure()); </script> </body> </html>
ผลลัพธ์
24
ในตัวอย่างต่อไปนี้ ฟังก์ชัน แม้ว่าจะขึ้นอยู่กับอาร์กิวเมนต์ของมันเอง แต่ก็ขึ้นอยู่กับตัวแปรภายนอก (val) บางตัวด้วย จึงไม่เป็นฟังก์ชันบริสุทธิ์ .
ตัวอย่าง
<html> <body> <script> function pure(arg) { let val = 100; return val* arg; } document.write(pure(2)); </script> </body> </html>
ผลลัพธ์
200
ตัวอย่างต่อไปนี้แสดง ฟังก์ชันบริสุทธิ์ เนื่องจากไม่มีตัวแปรภายนอกเข้ามาเกี่ยวข้องในขณะที่ฟังก์ชันกำลังทำงานอยู่ ฟังก์ชันจะคืนค่าเอาต์พุตเดียวกันเมื่อมีการส่งพารามิเตอร์เดียวกันไปยังมัน
ตัวอย่าง
<html> <body> <script> function pure(arg) { return 4 * arg; } document.write(pure(2)); </script> </body> </html>
ผลลัพธ์
8