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