Funktionen von Objekt auslesen

nrg

Top Contributor
Hallo Zusammen,

ich habe ein JSObjekt, wovon ich gerne alle Funktionen bzw. Properties auslesen würde. Warum ich das machen will, sei mal dahingestellt :).

Gibt es nicht irgendeine Möglichkeit über prototype o.ä. an die verfügbaren Funktionen etc. zu kommen?

Danke und Grüße
nrg

edit: Stichwort vllt Reflection. Ich google grad noch aber z.b. das hier hilft irgendwie nicht Reflection in Javascript | Leons Tech Blog
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Du bist im Falschen Forum!!! scnr :joke: Aber immerhin habe ich eine Antwort für dich:
Code:
Object.prototype.fncToConsole = function () {
	for (var k in this) {
	    if (this[k] instanceof Function) {
	        console.info("Funktion gefunden: " + k);
	    }
	}   
}

für properties kannste ja die Funktion nehmen und folgende Zeile umschreiben:
Code:
if(!(this[k] instanceof Function)) {
dann solltest du nur Properties aufgelistet bekommen.
 
Zuletzt bearbeitet von einem Moderator:

nrg

Top Contributor
deshalb schreibe ich ja im JavaScript-Bereich :)

diese Vorgehensweiße habe ich auch schon gefunden aber passt hier nicht ganz. Das funktioniert bei eigenen Objekten. Würde ich das jetzt z.b. auf Array loslassen, kriege ich irgendwie nicht dessen Funktionen. Weiterer Punkt ist, dass ich dazu eine Instanziierung benötige. Hier handelt sich es aber eher um Metaklassen, die implizit in der Engine verfügbar sind (Klassenname.funktion(....))
 
T

Tomate_Salat

Gast
Nope, eine Instanzierung brauchste nicht. Ein Array hat afaik keine Functionen. Ich kann diesen Prototypen problemlos auf andere Objekte anwenden:
Code:
window.fncToConsole();
Funktion gefunden: v8Locale
Funktion gefunden: blur
Funktion gefunden: close
Funktion gefunden: focus
...
Ich komme an alle Methoden ran, an die ich auch über die Console von z.B. Google Chrome komme.

Edit obwohl, man braucht vllt doch eine instanzierung von gewissen Elementen. Bei Element.fncToConsole() bekomme ich nur die, die ich registriert habe.
 
T

Tomate_Salat

Gast
Ka. Aber ich befürchte, dass diese durch eine Factory gesetzt werden. Und bei JS kann man ja Felder+Funktionen on-the-fly hinzufügen. Wenn ich mit meiner Vermutung recht habe, dann geht das höchstwahrscheinlich nicht.

Reicht die Information nicht aus, wenn du diese nach der Instanzierung hast? Du könntest ja ein dummy-Objekt erstellen oder so :bahnhof:
 

nrg

Top Contributor
dazu hätte ich doch noch eine Frage: ich finde nur die Möglichkeit, die Namen der Properties auszulesen (edit: also halt Standard-JSReflection
Code:
var bla in Objektname...
. krieg ich denn auch irgendwie den Inhalt?
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Code:
Object.prototype.fieldsToConsole = function () {
	for (var k in this) {
	   if(!(this[k] instanceof Function)) {      
                try {       
	            console.info("Property: " + k + "\nWert: " + this[k]);
                } catch(e) {
                    console.info("Property: " + k + "\nWert: n/a");
                }
	    }
	}   
}

(Code ungetestet) Gestern hatte ich mal soetwas aufgesetzt (code aber wieder gelöscht). Ich meine der sah so oder so ähnlich aus. Sollte also funktionieren.
 

nrg

Top Contributor
das liefert mir dann bei einer funktion den inhalt der funktion?? geht das auch für privates? (ich mach jetzt nicht soviel js aber "private" - wenn man das überhaupt sagen kann - ist ja alles ohne
Code:
this.
und "public" eben das mit
Code:
this.
davor, oder? :D)
 
T

Tomate_Salat

Gast
das liefert mir dann bei einer funktion den inhalt der funktion??
ka :bahnhof:, probiers aus. Oben war die rede von properties und nicht von Funktionen ;-).

geht das auch für privates? (ich mach jetzt nicht soviel js aber "private" - wenn man das überhaupt sagen kann - ist ja alles ohne
Code:
this.
und "public" eben das mit
Code:
this.
davor, oder? :D)

Meine JS-Künste sind auch eher beschiss...BESCHEIDEN (ernsthaft, ich wollte hier bescheiden schreiben :D), aber ... nein. private in JS ist nicht so gemütlich wie in, sagen wir, z.B. Java. Wie man das dort realisieren kann, steht hier in einem interessanten Bericht: Entwickeln in JavaScript | heise Developer.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Übergabeparameter in Funktionen Angular, React, JQuery - Fragen zu JavaScript 3
J Welche Bedeutung hat Code außerhalb von Funktionen Angular, React, JQuery - Fragen zu JavaScript 3
P Funktionen in Arrays Angular, React, JQuery - Fragen zu JavaScript 3
W Frage zu Funktionen Angular, React, JQuery - Fragen zu JavaScript 8
P mehrere Funktionen in einer aufrufen und onklick zuweisen Angular, React, JQuery - Fragen zu JavaScript 14
G Kann onClick zwei Aktionen/Funktionen ausführen Angular, React, JQuery - Fragen zu JavaScript 2
P Angular geschachteltes json-Objekt verändern Angular, React, JQuery - Fragen zu JavaScript 3
B [JS] Objekt existiert (keine festen Objektwerte!) Angular, React, JQuery - Fragen zu JavaScript 4
M JavaScript Objekt .play .reload? Angular, React, JQuery - Fragen zu JavaScript 10
D Teil vom Java Objekt abdecken oder nicht herausgeben Angular, React, JQuery - Fragen zu JavaScript 5
M Mit Javascript Objekt-Quellcode anzeigen Angular, React, JQuery - Fragen zu JavaScript 8
F JavaScript Abfrage ob Objekt existiert oder nicht Angular, React, JQuery - Fragen zu JavaScript 2
C Layer-Objekt Angular, React, JQuery - Fragen zu JavaScript 2
Cellsplitter Api auslesen und in Json Datei speichen - Javascript (node js) Angular, React, JQuery - Fragen zu JavaScript 10
G Variablen aus URL auslesen und in HTML darstellen Angular, React, JQuery - Fragen zu JavaScript 1
G Datumsfeld auslesen Angular, React, JQuery - Fragen zu JavaScript 2
P Richtiges Auslesen von mehreren Daten im JSON Format via JavaScript Angular, React, JQuery - Fragen zu JavaScript 2
D Java Aktienkurs auslesen Angular, React, JQuery - Fragen zu JavaScript 2
P Anzahl der Checkboxen auslesen Angular, React, JQuery - Fragen zu JavaScript 4
S Webseitenelemente ansteuern/auslesen Angular, React, JQuery - Fragen zu JavaScript 5
A Mit JavaScript AJAX-Calls auslesen? Angular, React, JQuery - Fragen zu JavaScript 4
G html mit java auslesen Angular, React, JQuery - Fragen zu JavaScript 6
C cd/dvd namen auslesen Angular, React, JQuery - Fragen zu JavaScript 2
F Auslesen unterschiedlicher Marker mit Goole Maps API Angular, React, JQuery - Fragen zu JavaScript 4
K Datei auslesen Angular, React, JQuery - Fragen zu JavaScript 2
H Zelle einer Tabelle auslesen Angular, React, JQuery - Fragen zu JavaScript 2
R zyklisch ein Applet Rückgabewert auslesen, so alle 1-2 sek? Angular, React, JQuery - Fragen zu JavaScript 4
T Anzahl Dateien in Verzeichnis mit JavaScript auslesen Angular, React, JQuery - Fragen zu JavaScript 2
P Wert aus Formular vom anderen Frame auslesen Angular, React, JQuery - Fragen zu JavaScript 2
W Wert aus HTML-Quelltext auslesen Angular, React, JQuery - Fragen zu JavaScript 8
T Quelltext auslesen (Extern) . Intern einfügen. Angular, React, JQuery - Fragen zu JavaScript 2

Ähnliche Java Themen

Neue Themen


Oben