當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript Symbol.species屬性用法及代碼示例


Symbol.species 屬性指定構造函數用於創建派生對象的 function-valued 屬性。有了這個,我們可以創建一個派生對象。

用法:

[Symbol.species]

屬性:物種訪問器屬性可用於允許子類覆蓋對象的默認構造函數。

下麵的示例說明了 JavaScript 中的 Symbol.species 屬性。

範例1:



Javascript


<script>
  
  // Created geek class that is extended by Array
  class geek extends Array {
    static get [Symbol.species]() {
      return Array;
    }
  }
  
  // Values assigned to geek
  const a = new geek(1, 2, 3, 4);
  //mapped values to geek object
  const mapped = a.map((x) => 2);
  
  console.log(mapped instanceof geek);
  //  output:false
  
  console.log(mapped instanceof geek);
  // output:false
</script>

輸出:

false
false

範例2:

Javascript


<script>
  class geek extends Array {
  
    // Overwrite species to the parent Array constructor
    static get [Symbol.species]() {
      return Array;
    }
  }
  let a = new geek(1, 2, 3, 5, 7, 8);
  let mapped = a.map((x) => x);
  
  console.log(mapped instanceof geek); // false
  console.log(mapped instanceof Array); // true
</script>

輸出:

false
true



相關用法


注:本文由純淨天空篩選整理自sravankumar8128大神的英文原創作品 JavaScript Symbol.species Property。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。