Ce face Object.getOwnPropertyNames / getOwnPropertySymbols
Object.keys returnează doar cheile enumerabile de tip text. getOwnPropertyNames returnează toate cheile de tip text, inclusiv cele neenumerabile (de exemplu length la un tablou). getOwnPropertySymbols returnează cheile de tip Symbol.
Pentru toate cheile, de ambele tipuri, folosește Reflect.ownKeys.
Parametri
| Parametru | Descriere |
|---|---|
obiect |
Obiectul inspectat. |
Ce returnează
Un tablou de chei.
Exemple
Exemplul 1: Trei moduri de a lista cheile
const id = Symbol("id");
const obiect = { nume: "Ana", [id]: 7 };
Object.defineProperty(obiect, "ascuns", { value: true });
console.log(Object.keys(obiect));
console.log(Object.getOwnPropertyNames(obiect));
console.log(Object.getOwnPropertySymbols(obiect));
console.log(Reflect.ownKeys(obiect));
Rezultat
[ 'nume' ]
[ 'nume', 'ascuns' ]
[ Symbol(id) ]
[ 'nume', 'ascuns', Symbol(id) ]
Exemplul 2: Cheile ascunse ale unui tablou și ale lui Math
console.log(Object.getOwnPropertyNames(["a", "b"]));
console.log(Object.keys(Math).length, Object.getOwnPropertyNames(Math).length);
Rezultat
[ '0', '1', 'length' ]
0 44
Greșeli frecvente
- Te aștepți să primești și proprietățile moștenite. Toate aceste metode returnează doar cheile proprii ale obiectului.
Comenzi înrudite
Object.keys / Object.values: Returnează un tablou cu cheile sau cu valorile unui obiect.Reflect: Funcții pentru operațiile de bază pe obiecte (citire, scriere, ștergere, chei), cu aceleași nume ca în Proxy.Symbol / Symbol.for: Creează valori unice, folosite ca chei de proprietăți care nu se ciocnesc cu alte chei.