จาก Proposal ของ ECMAScript นั้นมีสิ่งที่น่าสนใจคือ Tuple และ Record
อยู่ใน Stage 1 ซึ่งอาจจะเปลี่ยนแปลงอีกมากนัก
โดยทั้งสองตัวนี้เป็น immutable data structure ใหม่ที่เพิ่มเข้ามา
มีแนวคิดมาจาก Immutable.js นั่นเอง แต่ละตัวเป็นดังนี้
- Record มีโครงสร้างเหมือนกับ Object ซึ่งประกาศดังนี้ #{ x:1, y:2 }
- Tuple มีโครงสร้างเหมือนกับ Array ซึ่งประกาศดังนี้ #[1, 2, 3, 4]
สิ่งที่น่าสนใจมีดังนี้
เริ่มที่การเปรียบเทียบทั้ง Tuple และ Record จะเปรียบเทียบค่า ไม่เหมือน object !!
ยกตัวอย่างเช่น
[gist id="ebef26864e295d829dab6f69a2d7dee9" file="demo.js"]โดยที่ค่าใน Tuple และ Record จะต้องเป็น primitive data type เท่านั้น
นั่นรวม Tuple และ Record ด้วยนั่นเอง
ลองกำหนดเป็น object เช่น Array จะ error ดังนี้
สามารถ convert จาก Object มาเป็น Tuple และ Record ได้เลย
[gist id="ebef26864e295d829dab6f69a2d7dee9" file="demo3.js"]ไว้รอดูต่อไปว่าจะเป็นอย่างไรต่อไป
มาเขียน code กัน