Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Frage] Aufrufen einer Funktion mit Namen in einer Variable

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Frage] Aufrufen einer Funktion mit Namen in einer Variable

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      CruziX last edited by CruziX

      Hallo,

      hätte da mal eine Frage, zu JavaScript selbst habe ich schon Lösungen dazu gefunden, die sich aber nicht in ioBroker anwenden lassen.


      https://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string

      Ich würde gerne eine Funktion aufrufen, dessen Name aber in einer Variable steht.

      Also bsp.

      function call(functionName){
          // aufruf der übergebenen Funktion
          functionName();
      }
      

      T 1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer @CruziX last edited by ticaki

        @CruziX
        Das hier beispiel funktioniert, aber vielleicht meinst du auch was anderes:

        test(3,test2);
        function test(a, callback) {
            var test3 = function (a){ log(a); };
            var test4 = test3;
            callback(a);
            eval('test2(test4)');
        }
        function test2(b) {
            b(12);
        }
        

        Ah jetzt weiß ich was du meinst, ne sry hab ich nicht hinbekommen, als ich es versucht hatte. 🙂

        C 1 Reply Last reply Reply Quote 1
        • C
          CruziX @ticaki last edited by CruziX

          @ticaki Danke, hab eval auch schon gefunden, aber erst nicht so ganz verstanden.
          Ich hab gelesen, es wird empfohlen eher Function zu nutzen und das hat jetzt so geklappt:

          // Externe Function calls
          onMessage('call', (data, callback) => {console.log('Received data: ' + data); 
          Function('"use strict";'+data)(); callback(null, Date.now())});
          

          So kann ich jede Funktion der Skriptinstanz auch außerhalb aufrufen und muss gewisse Funktionen nicht in mehreren Skripts haben oder in globale setzen.

          Edit:
          Noch besser, dadurch, dass der Code jetzt in einem global Skript ist, kann ich Instanzübergreifend jede Funktion aufrufen ^^

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          759
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          203
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo