Pitter: Function.caller

Hallo zusammen,

Jede Funktion, die ich in JS aufrufe, besitzt ja in der Eigenschaft 'caller' die aufrufende Methode. Jetzt würde ich gerne den Namen dieser Methode ermitteln.

Gibt's da ne Möglichkeit, oder anders: Kennt eine Funktion ihren eigenen Namen???

Danke im Vorraus
Pitter

  1. Jede Funktion, die ich in JS aufrufe, besitzt ja in der Eigenschaft 'caller' die aufrufende Methode. Jetzt würde ich gerne den Namen dieser Methode ermitteln.

    Wozu?

    Gibt's da ne Möglichkeit, oder anders: Kennt eine Funktion ihren eigenen Namen???

    Nicht direkt.

    Struppi.

    1. schade, wär ja auch zu schön gewesen...

      dann muss ich den Namen halt jedesmal als Parameter übergeben

      trotdem danke für die schnelle Antwort

      Pitter

      1. schade, wär ja auch zu schön gewesen...

        keine Ahnung ob es schön gewesen wäre. Die frage war ja, wozu du das brauchst, es ist nämlich durchaus möglich.

        dann muss ich den Namen halt jedesmal als Parameter übergeben

        Wozu?

        Struppi.

        1. schade, wär ja auch zu schön gewesen...

          keine Ahnung ob es schön gewesen wäre. Die frage war ja, wozu du das brauchst, es ist nämlich durchaus möglich.

          ich bastle an einem Logging-System. Wenn ich meine Webapplikation starte, öffne ich ein Popup, in welches ich Logging-ausgaben schreibe.  Der Ausgabe-String wird einfach als Parameter übergeben. Und da dachte ich, es wäre ganz nett, wenn man den Namen der Funktion, welche die Ausgabe tätigt automatisch als präfix ermitteln könnte.

          Pitter

          1. schade, wär ja auch zu schön gewesen...

            keine Ahnung ob es schön gewesen wäre. Die frage war ja, wozu du das brauchst, es ist nämlich durchaus möglich.

            ich bastle an einem Logging-System. Wenn ich meine Webapplikation starte, öffne ich ein Popup, in welches ich Logging-ausgaben schreibe.  Der Ausgabe-String wird einfach als Parameter übergeben. Und da dachte ich, es wäre ganz nett, wenn man den Namen der Funktion, welche die Ausgabe tätigt automatisch als präfix ermitteln könnte.

            Ich weiß zwar nicht was der Ausgabestring ist und wohin der Parameter übergeben wird, aber evtl. hilft dir ein Blick auf arguments.callee

            Struppi.

            1. gut, dann das ganze mal ein wenig ausführlicher:

              Ich arbeite mit dem prototype-framework.

              Es gibt eine Klasse "ConsolenLogger". Diese besitzt ein Popup und die function log.

              log: function(String){
                this.popup.document.getElementById('out').innerHTML += String;
              }

              so, jetzt erzeuge ich in meiner Webanwendung immer wieder Log-ausgaben, indem die die Funktion der Klasse aufrufe.

              Jetzt wäre es ganz nett, wenn die Funktion log den Namen ihrer aufrufenden Funktion ermittlen könnte. Mit log.caller bekomme ich diese  aufrufende Funktion, aber leider ohne dessen Namen.

              mit arguments.callee bekomme ich übrigens die log-Funktion selber, aber auch ohne Namen.

              Pitter

              1. Jetzt wäre es ganz nett, wenn die Funktion log den Namen ihrer aufrufenden Funktion ermittlen könnte. Mit log.caller bekomme ich diese  aufrufende Funktion, aber leider ohne dessen Namen.

                Du erhälst den Quelltext inklusive Name, wenn die Funktion einen hat.

                Struppi.

              2. Jetzt wäre es ganz nett, wenn die Funktion log den Namen ihrer aufrufenden Funktion ermittlen könnte.

                Eventuell wäre das (Gecko-only) mit function.name möglich.

                Siechfred

                --
                Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.