Symbol.isConcatSpreadable
สัญลักษณ์ที่รู้จักกันดีนี้ใช้ในการกำหนดค่าหากวัตถุควรถูกทำให้แบนกับองค์ประกอบอาร์เรย์เมื่อใช้เมธอด Array.prototype.concat() . หากเป็น เท็จ จากนั้นจะไม่มีการแบนของอาร์เรย์เกิดขึ้น โดยค่าเริ่มต้น Symbol.IsConcatSpreadable เป็น จริง . ดังนั้น จนกว่า และ เว้นแต่จะไม่มีการประกาศอย่างชัดแจ้ง แบนราบ ของอาร์เรย์ไม่สามารถหลีกเลี่ยงได้
ไม่มีสัญลักษณ์
ตัวอย่าง
ในตัวอย่างต่อไปนี้ สัญลักษณ์ Symbol.IsConcatSpreadable ไม่ได้ระบุไว้อย่างชัดเจน ดังนั้นโดยค่าเริ่มต้น อาร์เรย์จะถูกทำให้แบนตามที่แสดงในผลลัพธ์
<html> <body> <script> var arr1 = ['mango', 'apple', 'guava']; var arr2 = ['cashew', 'pista', 'bhadham']; var res1 = arr1.concat(arr2); console.log(res1); </script> </body> </html>
ผลลัพธ์
["mango", "apple", "guava", "cashew", "pista", "bhadham"]
พร้อมสัญลักษณ์
ตัวอย่าง
ในตัวอย่างต่อไปนี้ สัญลักษณ์ Symbol.IsConcatSpreadable ระบุไว้อย่างชัดเจน ดังนั้น แบน ของอาร์เรย์ไม่ได้เกิดขึ้นตามที่แสดงไอออนเอาต์พุต
<html> <body> <script> var arr1 = ['mango', 'apple', 'guava']; var arr2 = ['cashew', 'pista', 'bhadham']; arr2[Symbol.isConcatSpreadable] = false; var res2 = arr1.concat(arr2); console.log(res2); </script> </body> </html>
ผลลัพธ์
["mango", "apple", "guava", Array(3)]