码迷,mamicode.com
首页 > 其他好文 > 详细

es6 Symbol

时间:2021-02-01 12:36:26      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:找不到   fine   import   turn   div   接口   结果   type   false   

性质:1 唯一的, 2 单独是一个类型, 

 

用作对象的私有属性

1   const sym = Symbol("private");
2 
3   export default function Constr(a){
4     return  {
5       [sym]: 111, //私有属性
6       pub:a
7     }
8   }
9   
<script type="module"></script>
  <script type="module">
    import Constr from "./constr.js";
    var c = new Constr("11111")
    for(var prop in c){
      console.log(prop); //找不到sym属性, 只能找到pub属性
    }
    console.log(Object.keys(c));//同样找不到prop属性
    console.log(Object.getOwnPropertySymbols(c)); //只有通过该方法才能拿到私有属性

2, instanceof方法对应的内部实现接口 Symbol.hasInstance

接上例:

Object.defineProperty(Constr,Symbol.hasInstance,{
      value:function(){
        return false;
      }
    })
 console.log(c instanceof Constr); //结果是false, 因为已经用它改写了结果

 

es6 Symbol

标签:找不到   fine   import   turn   div   接口   结果   type   false   

原文地址:https://www.cnblogs.com/dangdanghepingping/p/14351566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!