Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Blackcat

Método dentro de outro Método

Recommended Posts

Olá pessoal, bom dia!

 

Estou com um problema em chamar um método dentro de outro sem precisar instanciar a classe.

 

O que eu fiz:

 

function controler() {

 this.funcao1 = function() {
   executa qualquer coisa
 }

 this.funcao2 = function() {
   executa outras coisas
 } 

}

 

O que eu quero:

 

function controler() {

 this.funcao1 = function() {
   executa qualquer coisa
   execute a função dois aqui
 }

 this.funcao2 = function() {
   executa outras coisas
 } 

}

 

O que eu já tentei:

 

function controler() {

 this.funcao1 = function() {
   executa qualquer coisa
   this.funcao2();
   parent.funcao2();
   self.funcao2();
 }

 this.funcao2 = function() {
   executa outras coisas
 } 

}

 

Como funcionou (porém não achei esse método correto, achei ele gambiarra):

 

function controler() {

 this.funcao1 = function() {
   executa qualquer coisa
   teste = new controler();
   teste.funcao2();
 }

 this.funcao2 = function() {
   executa outras coisas
 } 


}

 

Obrigado as respostas válidas!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa disso tudo cara, é só colocar:

 

function Algo() {
this.a = function() {
	//Algo
	this.b();
}

this.b = function() {
	//Algo
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui, isso (Quando executado no console) funciona perfeitamente:

 

function Algo() {
       this.a = function() {
               //Algo
               this.b();
       }

       this.b = function() {
               alert( 'teste' );
       }
}

new Algo().a()

 

Tá usando que browser? O meu é o Firefox 10.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

var controller = function(){}

controller.prototype.funcao1 = function() {
   var teste = new controller();
   teste.funcao2();
}

controller.prototype.funcao2 = function() {
   // executa outras coisas
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também estou usando o firefox 10. Não sei se tem haver, porém vou explicar melhor:

 

Tenho uma função:

obj = new Controler();

$('elemento').click(function() {

 obj.funcao(parametros, parametro);
});

 

OBS: obj é a instância do controler.

 

OBS2: A funcao não está no mesmo arquivo e sim dentro de um arquivo js da forma informada anteriormente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

var obj = new Controler();

$('elemento').click(function() {

 obj.funcao(parametros, parametro);
});   

 

Sempre declare a variável para evitar problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.