In JavaScript abbiamo alcuni modi per ottenere le proprietà di un oggetto, a seconda di ciò che vogliamo ottenere.
1) Object.keys()
, che restituisce tutte le proprietà enumerabili di un oggetto, un metodo ECMA5.
2) un for...in
ciclo, che restituisce tutte le proprietà enumerabili di un oggetto, indipendentemente dal fatto che siano proprietà proprie o ereditate dalla catena del prototipo.
3) Object.getOwnPropertyNames(obj)
che restituisce tutte le proprietà proprie di un oggetto, enumerabili o meno.
Abbiamo anche metodi che hasOwnProperty(prop)
ci consentono di controllare se una proprietà è ereditata o appartiene effettivamente a quell'oggetto e propertyIsEnumerable(prop)
che, come suggerisce il nome, ci consente di verificare se una proprietà è enumerabile.
Con tutte queste opzioni, non c'è modo di ottenere una proprietà non enumerabile e non propria di un oggetto, che è ciò che voglio fare. C'è un modo per fare questo? In altre parole, posso in qualche modo ottenere un elenco delle proprietà non enumerabili ereditate?
Grazie.