Symbol解析

什么是symbol

Symbol是ES6中新增的一种数据类型, 被划分到了基本数据类型中

Symbol的作用

用来表示一个独一无二的值

格式

1
2
let a=Symbol(‘标识字符串’);

为什么需要Symbol?

为了避免第三方框架的同名属性被覆盖,在企业开发中如果需要对一些第三方的插件、框架进行自定义的时候
可能会因为添加了同名的属性或者方法, 将框架中原有的属性或者方法覆盖掉
为了避免这种情况的发生, 框架的作者或者我们就可以使用Symbol作为属性或者方法的名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//后面的括号可以给symbol做上标记便于识别
let name=Symbol('name');
let say=Symbol('say');
let obj= {
//如果想 使用变量作为对象属性的名称,必须加上中括号,.运算符后面跟着的都是字符串
[name]: 'lnj',
[say]: function () {
console.log('say')
}
}
obj.name='it666';
obj[Symbol('name')]='it666'
console.log(obj) // {name: "it666" Symbol(name): "lnj" Symbol(name): "it666" Symbol(say): ƒ ()}