性质: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, 因为已经用它改写了结果
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。