Symbol.isConcatSpreadable 在 JavaScript 中的重要性是什麼?


Symbol.isConcatSpreadable

此眾所周知的符號用於配置在使用 Array.prototype.concat() 方法 時是否應將物件展平為其陣列元素。如果它為 false,則不會展平陣列。預設情況下,Symbol.IsConcatSpreadable true。因此,直到明確宣告,否則無法避免對陣列進行展平。。

未包含 Symbol

示例

在以下示例中,未明確指出符號 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

示例

在以下示例中,明確指出了符號 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)]

更新於: 31-Jul-2019

152 次瀏覽

開啟你的職業生涯

完成課程以獲得認證

開始吧
廣告