2014-05-25 4 views
1

Comment puis-je appeler une autre fonction à partir d'une fonction dans un objet en JavaScript.Comment caler une autre fonction dans une fonction d'objet

Par exemple, je suis en train de le faire:

var mydiv1 = document.querySelector('.div1'); 
var mydiv2 = document.querySelector('.div2'); 

var myVariable1; 
var myVariable2; 

var myObject = (function() { 
    return { 
     function1 : function (myVariable1) { 
      myVariable2 = "this was called from a function and inserted by function2"; 
      mydiv1.innerHTML = myVariable1; 
      function2(myVariable2); 
     }, 

     function2 : function (myVariable2) { 
      mydiv2.innerHTML = myVariable2; 
     } 
    }; 

}()); 

mydiv1.addEventListener('click', function() { 
    myVariable1 = "this was called from a function and inserted by function1"; 
    myVariable2 = "this was called from a function and inserted by function2"; 
    myObject.function1(myVariable1); 
}); 

Voici un violon http://jsfiddle.net/kvtxd/6/

« Fonction1 » court comme exceptées, mais je reçois une erreur qui fonction2 est indéfinie. Quelle est la bonne façon de faire cela?

La raison pour laquelle j'utilise un objet est que je peux appeler chaque fonction interne individuellement si nécessaire. Je juste appelez function2 mais pas function1.

Voir, Si j'utilise:

function WholeFunction() { 
    function function1() { 
    // 
    } 
    function function2() { 
    // 
    } 
} 

Alors function1 et fonction2 sont hors de portée et je ne peux qu'appeler la chose.

Répondre

2

Utilisez le « ce » mot-clé lorsque dans une fonction:

function1 : function (myVariable1) { 
      myVariable2 = "this was called from a function and inserted by function2"; 
      mydiv1.innerHTML = myVariable1; 
      this.function2(myVariable2); // use "this" here!!!! 
     }, 

Voici un Fiddle

+1

Ce sont toujours les petites choses! – user3143218

+0

Est-ce que "this" fait référence à l'objet, à la variable ou à la fonction? – user3143218

+0

@ user3143218: 'this' fait référence à l'objet. – Guffa

Questions connexes