当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。