Pure Function
Pure function คือ deterministic function ส่ง input เดียวกันทุกครั้ง จะได้ output เดียวกันเสมอ ในทางคณิตศาสตร์คือ well-defined function
Pure function มีคุณสมบัติ:
- ขึ้นอยู่กับ arguments ของตัวเอง เท่านั้น
- ไม่พยายามเปลี่ยนตัวแปรนอก scope
- ไม่ทำ side effects ใดๆ
ตัวอย่างที่ ไม่ใช่ pure function: ฟังก์ชันขึ้นอยู่กับ val1, val2 นอก scope
ตัวอย่างที่ 1 (ไม่ใช่ Pure)
<html> <body> <script>
let val1 = 6;
let val2 = 4;
function pure() {
return val1 * val2;
}
document.write(pure());
</script> </body> </html>
ผลลัพธ์
24
ตัวอย่างที่ 2 (ไม่ใช่ Pure): ฟังก์ชันขึ้นอยู่กับ argument แต่ก็ยังขึ้นอยู่กับตัวแปรนอก (val)
ตัวอย่างที่ 2 (ไม่ใช่ Pure)
<html> <body> <script>
function pure(arg) {
let val = 100;
return val * arg;
}
document.write(pure(2));
</script> </body> </html>
ผลลัพธ์
200
ตัวอย่างที่ 3 (Pure Function): ไม่มีตัวแปรนอกเกี่ยวข้อง คืนค่าเดียวกันสำหรับ input เดียวกัน
ตัวอย่างที่ 3 (Pure Function)
<html> <body>
<script>
function pure(arg) {
return 4 * arg;
}
document.write(pure(2));
</script>
</body> </html>
ผลลัพธ์
8