2017-10-27 2 views
0

Der Wert, der in einer Methode erstellt wird, kann in einer anderen Methode durch Aufrufen verwendet werden, aber in meinem Fall erhalte ich einen Fehler. Bitte beratenAbrufen des Werts in einer Methode zu der anderen Methode

(function() { 
     var s = { 
     appendToFilter: function(bread, value) { 
      console.log(bread); // value is 20 
      console.log(value); // value is 40 
      return value; // Need this value 
     }, 
     //Append to container in order to render filters 
     appendToContainer: function(container, v, state) { 
      // I need the value returned in appendToFilter here 
      // I tried using global variable and tried to call appendToFilter here, no luck 
      // since it depends on flow of the methods is there any work around to get the value 
     }, 

     getToFilter: function(value) { 
      var x = 20; 
      var y = 40; 
      s.appendToFilter(x,y); 
     } 
     } 

    }); 

Antwort

0

Erklären Sie einfach eine globale Variable außerhalb der Funktion. und Sie können überall darauf zugreifen.

var newVal; 
(function() { 

     var s = { 
     appendToFilter: function(bread, value) { 
      console.log(bread); // value is 20 
      console.log(value); // value is 40 
      newVal=value; 
      return value; // Need this value 
     }, 
     //Append to container in order to render filters 
     appendToContainer: function(container, v, state) { 
      console.log(newVal); 
     }, 

     getToFilter: function(value) { 
      var x = 20; 
      var y = 40; 
      s.appendToFilter(x,y); 
     } 
     } 

    }); 
+0

dies nicht funktioniert, da die Methode calling – john

+0

benötigt wird, haben Sie neue Variable in „var s“ hinzuzufügen versucht, und dann versuchen, es zu benutzen? Irgendetwas wie 'var s = {newVal: null, appendToFilter: function() {}}' –

+0

ja ich habe das hinzugefügt, aber kein Glück – john

0
(function() { 
     var s = { 
     appendToFilter: function(bread, value) { 
      console.log(bread); 
      console.log(value); 
      return value; 
     }, 
     //Append to container in order to render filters 
     appendToContainer: function(container, v, state) { 
      var value = s.appendToFilter(10, 20); // call it as you used it getToFilter function 
    console.log(value) 

     }, 

     getToFilter: function(value) { 
      var x = 20; 
      var y = 40; 
      s.appendToFilter(x,y); 
     } 
     } 

    }); 
+0

Ich bekomme einen Wert undefined, mit diesem Snippet – john

+0

können Sie den Ausschnitt zeigen, wie Sie die obige Funktion aufrufen – Eftakhar

Verwandte Themen