Amo il metodo Object.getOwnPropertyNames. Sembra uno strumento così utile per conoscere gli oggetti all'interno di una shell JS.JavaScript "Object.getOwnPropertyNames" Proprietà mancanti?
Quello che mi sta facendo impazzire, però, è che getOwnPropertyNames sembra mancare alcuni (Nota: nei miei test sto eseguendo un'implementazione ECMA 5 - Google Chrome versione 28.0.1500.95).
Ecco un esempio:
> var x= []
undefined
> x.constructor
function Array() { [native code] }
> Object.getOwnPropertyNames(x)
["length"]
Eppure chiaramente, x ha un sacco di proprietà! (Ad esempio https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype)
> x.push
function push() { [native code] }
> x.pop
function pop() { [native code] }
Qualcuno può aiutare a spiegare cosa sta succedendo qui? Grazie! : D
Edit: Va bene! Vedo che getOwnPropertyNames ottiene solo i nomi delle proprietà dell'oggetto a portata di mano. C'è un modo semplice per ottenere proprietà ereditate? O forse l'unico modo è attraversare object.constructor.prototype .__ proto__?
getOWNpropertyNames –
La domanda modificato diventa un possibile duplicato di [Come elencare le proprietà di un oggetto JavaScript] (http://stackoverflow.com/questions/208016/how-to-list -le-properties-di-un-javascript-oggetto) – Djizeus