Gibt es eine Möglichkeit, alle Eigenschaften eines Objekts aufzulisten (was auch eine Funktion sein kann), einschließlich nicht aufzählbarer Objekte, aber ohne Object.getOwnPropertyNames
oder andere Methoden von Object
zu verwenden?JavaScript - Wie listet man Eigenschaften eines Objekts auf?
So zum Beispiel, ich brauche alle Eigenschaften des nativen String
Konstruktor zu bekommen (fromCharCode
, fromCodePoint
, raw
, etc), aber ich bin nicht native Funktion von Object
genannt getOwnPropertyNames
zu nutzen. Gibt es einen Weg, das zu erreichen?
Ich habe versucht for..in
und for..of
Schleifen, aber nicht alle Eigenschaften aufgeführt. Auch habe ich versucht Object.keys
, aber wieder sind nicht alle Eigenschaften aufgeführt. sein auch deutlich zu machen, was ich fragen: Folgendes ist nicht erlaubt:
var a = Object.getOwnPropertyNames.bind(Object);
console.log(a(String));
ich dies frage, weil ich einige Spiel ich spiele (genannt ElevatorJS
), in dem ein Benutzer ein JavaScript-Programm schreibt die sollte etwas in eingeschränkten Bedingungen erreichen. In dieser speziellen Bedingung wird die Methode getOwnPropertyNames
überschrieben und ist gleich null
, daher dürfen wir sie nicht verwenden. Aber es stellte sich heraus, dass sie eine nicht aufzählbare Eigenschaft innerhalb des Konstruktors String
als Eigenschaft versteckt haben, also muss ich irgendwie darauf zugreifen. Sie haben auch andere Methoden von Object
überschrieben (wie entries
, getOwnPropertyDescriptors
, usw.).
Gibt es eine Möglichkeit, das zu erreichen? Vielen Dank im Voraus.
Also im Grunde, anstatt magische Funktion A, verwenden Sie magische Funktion B stattdessen;) –
@FelixKling: Heh, ja ziemlich viel. : D – spanky