一、Symbol
的基本使用
在ES2015之前,对象的属性名都是字符串,而字符串有可能会重复,重复的话有可能会有冲突。
看一个例子,比如有3个js文件
// share.js=========
const cache = {
}
// a.js=========
cache['foo'] = '123'
// b.js=========
cache['foo'] = Math.random()
console.log(catch)
现在我们大量使用第三方库,很多时候需要自己去扩展。如果出现属性重复怎么办呢?
ES2015之前的解决方案:约定。
给属性名添加特定前缀,比如说Vue内部也使用$和_作为内部方法或属性。
// share.js=========
const cache = {
}
// a.js=========
cache['a_foo'] = '123'
// b.js=========
cache['b_foo'] = Math.random()
console.log(catch)
在ES2015中,新增了一种原始数据类型Symbol
—— 表示独一无二的值。
基本使用: