es6 语法 (symbol)

时间:2023-03-09 07:58:08
es6 语法 (symbol)

{
// 声明
let a1 = Symbol();
let a2 = Symbol();
console.log(a1 === a2); //false
let a3 = Symbol.for('a3');
let a4 = Symbol.for('a3');
console.log(a3 === a4); //true
} {
let a1 = Symbol.for('abc'); //当key值
let obj = {
[a1]: '123',
'abc': 345,
'c': 456
};
console.log('obj', obj); //abc:345,c:456,Symbol(abc):'123' for (let [key, value] of Object.entries(obj)) {
// Object.entries方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值对数组。
// var obj = { foo: 'bar', baz: 42 }; 例如:Object.entries(obj) => [ ["foo", "bar"], ["baz", 42] ] console.log('let of', key, value, obj); // let of abc 345 {abc:345,c:456,Symbol(abc):"123"};let of c 456,{abc:345,c:456,Symbol(abc):"123"}
} Object.getOwnPropertySymbols(obj).forEach(function(item) {
console.log('111',obj[item]); //
}) Reflect.ownKeys(obj).forEach(function(item) {
console.log('ownkeys', item, obj[item]);//abc 345,c 456,Symbol(abc) 123;
})
}