symbol

30 阅读1分钟
  • 类似于字符串的数据类型
  • 用于解决命名冲突问题
  • 不能与其他数据进行运算
  • 不能使用for...in循环遍历,使用reflect.ownkeys获取对象的所有键名

创建symbol

let s=symbol();
let s=symbol('收到了');
let s=symbol.for('收到了');

symbol创建对象

向对象添加方法up,down

let game={
    XXX
}

let methods={
    up:symbol(),
    down:symbol()
}

扩展方法

game[mothods.up]=function(){
    console.log('变化')
}

game[mothods.down]=function(){
console.log('手动阀')
}

let youxi={
    name:'狼人杀',
    [symbol('say')]:function(){
        console.log('黄日华');
    }
    [symbol('sdf')]:function(){
        console.log('了两年卡')
    }
}

取中括号中变量的内容

let a = 'xxx'
let obj = {
    [a]:1111     //打印obj,结果为:{xxx:1111}
}
 
//写法等同于
let a = 'xxx'
let obj = {}
obj[a] = 1111