ฟังก์ชันบริสุทธิ์
ฟังก์ชันบริสุทธิ์ เป็นฟังก์ชันกำหนด . ซึ่งหมายความว่าเมื่อมีการส่งผ่านอินพุตเดียวกันทุกครั้ง ฟังก์ชันจะส่งกลับเอาต์พุตเดียวกัน ในทางคณิตศาสตร์ มันไม่ใช่อะไรนอกจากฟังก์ชันที่กำหนดไว้อย่างดี
ฟังก์ชันบริสุทธิ์ จะมีคุณสมบัติดังต่อไปนี้
-
ขึ้นอยู่กับข้อโต้แย้งของตัวเอง
-
มันจะไม่พยายามเปลี่ยนตัวแปรนอกขอบเขต
-
ไม่ก่อให้เกิดผลข้างเคียง
ตัวอย่างต่อไปนี้ไม่ใช่ ฟังก์ชันบริสุทธิ์ เพราะแทนที่จะขึ้นอยู่กับตัวแปรของตัวเอง ฟังก์ชันจะขึ้นอยู่กับตัวแปร (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