以下情况:
var myVehicle = { brand: 'Tesla' };
var isMoving = Symbol();
var currentStatus = Symbol();
myVehicle[isMoving] = true;
myVehicle[currentStatus] = 'moving';
我想打印我的对象中使用的“符号属性”的名称myVehicle
console.log(
myVehicle[isMoving], // true
myVehicle[currentStatus], // 'moving',
Reflect.ownKeys(myVehicle), // [ 'brand', Symbol(), Symbol() ]
Object.getOwnPropertySymbols(myVehicle), // [ Symbol(), Symbol() ]
);
我怎样才能得到这样的名字:
[isMoving, currentStatus]
代替[ Symbol(), Symbol() ]
Solution
没有名字,但有描述:
var myVehicle = { brand: 'Tesla' };
var isMoving = Symbol('isMoving');
var currentStatus = Symbol('currentStatus');
myVehicle[isMoving] = true;
myVehicle[currentStatus] = 'moving';
Object.getOwnPropertySymbols(myVehicle).forEach((sym, index) =>
console.log(
index + 1 + '. Symbol Description: ',
sym.description + ': ',
myVehicle[sym],
),
);
Outputs:
1. Symbol Description: isMoving: true
2. Symbol Description: currentStatus: moving