Run nel tuo browser (ES5 +)Perché non riesco a ottenere il conteggio delle proprietà dell'oggetto Navigator in JavaScript?
var propCount = Object.keys(navigator).length;
console.log(propCount); // 0
Se lo si fa per un oggetto semplice come quello
let obj = {
foo: 'bar',
breaking: 'bad'
}
let propCount = Object.keys(obj).length;
console.log(propCount); // 2
Perché succede?
Ci scusiamo se potrebbe riferirsi ad un altro problema come quando Object.keys(obj)
lo sta contando solo per oggetti semplici che non contengano functions/arrays
, ma questa è la prima volta che ho incontrato con esso.
E vorrei sapere il motivo.
Sembra che siano proprietà ereditate e 'Object.keys()' fornisce solo proprietà "proprie". '" appName "nel navigatore; // true' ... 'navigator.hasOwnProperty (" appName "); // false' Prova ad usare un semplice ciclo for-in'. –
... e noterei che non sono sicuro che l'oggetto 'navigator' abbia specifiche proprietà enumerabili. In caso contrario, farei attenzione nel fare affidamento su di esso nel codice del mondo reale. –