其他分享
首页 > 其他分享> > es6 Symbol

es6 Symbol

作者:互联网

性质: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,console,log,Symbol,Object,Constr,属性
来源: https://www.cnblogs.com/dangdanghepingping/p/14351566.html