JavaScript 进阶必备:掌握 Symbol 新标识符用法
// 使用 Symbol 创建独一无二的属性
const symbol1 = Symbol('symbol1');
const symbol2 = Symbol('symbol2');
const myObject = {};
// 为对象添加 Symbol 属性
myObject[symbol1] = 'value1';
myObject[symbol2] = 'value2';
// 遍历对象的 Symbol 属性
for (let key in myObject) {
if (myObject.hasOwnProperty(key)) {
console.log(`${key}: ${myObject[key]}`);
}
}
// 使用 Object.getOwnPropertySymbols 获取所有 Symbol 属性
const symbols = Object.getOwnPropertySymbols(myObject);
console.log(symbols); // [ Symbol(symbol1), Symbol(symbol2) ]
// 使用 Reflect.ownKeys 获取所有键,包括 Symbol 和字符串
const keys = Reflect.ownKeys(myObject);
console.log(keys); // [ Symbol(symbol1), Symbol(symbol2), 'toString' ]
这段代码展示了如何使用 JavaScript 的 Symbol
数据类型来创建独一无二的属性键。Symbol
函数可以接收一个可选的字符串作为参数,用于描述 Symbol,但它不会作为属性的名字,只是为了调试。通过 for...in
循环和 Object.getOwnPropertySymbols
方法可以访问和列举对象的 Symbol 属性。Reflect.ownKeys
方法则可以获取到对象上的所有键,包括 Symbol 和字符串键。
评论已关闭