📅  最后修改于: 2023-12-03 15:16:06.104000             🧑  作者: Mango
Object.getOwnPropertySymbols()
方法返回一个数组,其中包含对象自身的所有符号属性(Symbol属性)。
Object.getOwnPropertySymbols(obj)
obj
:必选,要返回符号属性的对象。getOwnPropertySymbols()
获取对象符号属性let obj = {};
let a = Symbol('a');
let b = Symbol.for('b');
obj[a] = 'localSymbol';
obj[b] = 'globalSymbol';
let symbols = Object.getOwnPropertySymbols(obj);
console.log(symbols.length); // 2
console.log(symbols); // [ Symbol(a), Symbol(b) ]
Object.defineProperty()
方法使用let obj = {};
let a = Symbol('a');
let b = Symbol.for('b');
Object.defineProperty(obj, a, {
value: 'localSymbol',
enumerable: false,
writable: false,
configurable: false
});
Object.defineProperty(obj, b, {
value: 'globalSymbol',
enumerable: false,
writable: false,
configurable: false
});
let symbols = Object.getOwnPropertySymbols(obj);
console.log(symbols.length); // 2
console.log(symbols); // [ Symbol(a), Symbol(b) ]
getOwnPropertySymbols()
方法只会返回对象自身的符号属性,不会返回原型链上的符号属性。getOwnPropertySymbols()
方法返回的符号属性数组是基于插入顺序的。即使修改了对象的符号属性,数组的顺序也不会改变。[]
符号运算符。因为符号属性不是字符串。