Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

Symbol.isConcatSpreadable ใน JavaScript มีความสำคัญอย่างไร?


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)]