Symbol.isConcatSpreadable 屬性
物件的Symbol.isConcatSpreadable屬性等於一個布林值。
表示該物件使用Array.prototype.concat()時,是否可以展開。
更多關於Symbol的內容可以參閱JavaScript Symbol一章節。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼let arr = ["螞蟻部落", 4, "青島市南區"]; let ant = ["前端教程"]; console.log(ant.concat(arr,"ES6教程")); console.log(arr[Symbol.isConcatSpreadable]);
從上面的程式碼可以看出,陣列arr是可以展開的,Symbol.isConcatSpreadable屬性此時的返回值是undefined,和返回true是一樣的效果,都是表示可以展開。
[JavaScript] 純文字檢視 複製程式碼let arr = ["螞蟻部落", 4, "青島市南區"]; let ant = ["前端教程"]; arr[Symbol.isConcatSpreadable] = false; console.log(ant.concat(arr, "ES6教程")); console.log(arr[Symbol.isConcatSpreadable]);
可以顯式設定此屬性值為false,這時候對應的陣列就不可以展開。
[JavaScript] 純文字檢視 複製程式碼let obj = {length: 2, 0: "螞蟻部落", 1:"青島市南區"}; console.log(["前端教程", "分享互助"].concat(obj, "ES6教程")); obj[Symbol.isConcatSpreadable] = true; console.log(["前端教程", "分享互助"].concat(obj, "ES6教程"));
對於類陣列而言,預設情況下,Symbol.isConcatSpreadable屬性值為false,不過可以顯示設定為true。
[JavaScript] 純文字檢視 複製程式碼class A1 extends Array { constructor(args) { super(args); this[Symbol.isConcatSpreadable] = true; } } class A2 extends Array { constructor(args) { super(args); this[Symbol.isConcatSpreadable] = false; } } let a1 = new A1(); a1[0] = 3; a1[1] = 4; let a2 = new A2(); a2[0] = 5; a2[1] = 6; console.log([1, 2].concat(a1).concat(a2));
對於一個類來說,Symbol.isConcatSpreadable屬性必須寫成例項的屬性。
類A1是可展開的,類A2是不可展開的。
相關文章
- CMake 屬性之全域性屬性
- iOS動畫 屬性屬性解析iOS動畫
- defer 屬性和 async 屬性
- CSS 屬性篇(七):Display屬性CSS
- CMake 屬性之目標屬性
- CMake 屬性之目錄屬性
- JavaScript私有屬性和靜態屬性JavaScript
- CSS字型屬性和文字屬性詳解CSS
- 私有屬性
- allowfullscreen 屬性
- background 屬性
- cssText 屬性CSS
- translucent屬性
- parentStyleSheet屬性
- cssRules 屬性CSS
- background屬性
- jQuery 屬性jQuery
- 屬性動畫動畫
- jQuery屬性jQuery
- TextView屬性TextView
- XML屬性XML
- Property屬性
- DOM屬性
- HTML 屬性HTML
- ref屬性
- Python - 物件導向程式設計 - 公共屬性、保護屬性、私有屬性Python物件程式設計
- CAD屬性編輯操作——物件屬性教程物件
- WPF 之 依賴屬性與附加屬性(五)
- jQuery設定disabled屬性與移除disabled屬性jQuery
- Python 類的屬性與例項屬性Python
- python物件屬性管理(2):property管理屬性Python物件
- 框架(frameset),全域性屬性框架
- js如何獲取給定屬性的屬性值JS
- Blob type 屬性
- Blob size 屬性
- JavaScript files 屬性JavaScript
- URL hostname 屬性
- URL pathname 屬性