JavaScript语言的对象是一组属性的无序集合,其中每个属性都有一个名字和一个值。在ES6之前,属性名可以是字符串和数字。但在ES6和之后的版本中,符号也可以作为属性名,并且符号创建的属性名是唯一的,可防止属性名称冲突的风险。
1.创建符号实例
//Symbol()函数创建方式(不带参数)
let sym = Symbol();
//Symbol()函数创建方式(带参数)
let sym = Symbol('foo');
Symbol()
函数可选地接收一个字符串参数,永远不会返回相同的值,即使每次传入的参数都一样。
let genericSymbol = Symbol();
let otherGenericSymbol = Symbol();
let fooSymbol = Symbol('foo');
let otherFooSymbol = Symbol('foo');
console.log(genericSymbol == otherGenericSymbol);
console.log(fooSymbol == otherFooSymbol);
//都输出
false
false
2.使用符号作为属性名
let s = Symbol('foo');
let o = {
[s]: 'foo val'
};
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/20867.html