2016-06-25 8 views
0

Ich habe dieses Objekt:JavaScript: Wie kann ich Code als String bekommen?

{ tag: 'button', 
    attrs: { onClick: this.myFunc }, 
    children: 'Name' } 

Dieses Objekt in einem Kontext, wo this.myFunc eine Funktion ist. Wie kann ich this.myFunc bekommen?

Wenn ich versuche, mit: obj['attrs']['onClick'] druckt er alle der Funktion:

function(event){...} 
+0

Versuchen Sie, die Funktion aufzurufen? – kinakuta

+0

@kinakuta nein, ich möchte als string: "this.myFunc" – granmirupa

+0

Nun, ich bin mir nicht sicher, wie Sie es als eine Zeichenfolge erhalten, wenn Sie das Objekt in JSON konvertieren und dann analysieren, um zu finden, was folgt "onClick:" Teil der Zeichenfolge – kinakuta

Antwort

2

Haben Sie versucht, Dies um den Funktionsnamen als String zu erhalten

Dies würde höchstwahrscheinlich "myFunc" zurückgeben und nicht "this.myFunc" hängt jedoch davon ab, was Sie wollen.

+0

@joe Ich habe Ihre Bearbeitung zurückgesetzt, weil 'String' vs 'string' ist kein Grammatikproblem in JavaScipt, aber sie beziehen sich auf verschiedene Typen mit 'string' als primitive und höchstwahrscheinlich richtig hier –

0

Wenn Sie den Namen nur erhalten möchten, sollten Sie dies versuchen:

var name = /function ([^(]*)/.exec(obj['attrs']['onClick']+"")[1]; 
+0

warum sollte gearbeitet werden? funktioniert jedoch nicht – granmirupa

+0

Probieren Sie es jetzt bitte @granmirupa – MoustafaS

Verwandte Themen