27 de out. de 2009

Propriedade como ação?

Este post é uma pergunta de javascript, quem souber responda nos comentários, depois eu altero o posto com a solução!
Como eu faço para criar um objeto, onde a propriedade faz uma ação? Explico:

Sabe os campos de formulário. Quando vc chama eles assim:

inputObj.disabled = true;

O objeto fica travado. Veja, quando eu MUDEI O VALOR da propriedade disabled, alguma coisa aconteceu. Eu quero a mesmo coisa! Por exemplo:

Hoje estou escrevendo assim:

var setor_class = function() {
  this.aberto = true;
  this.obj = findObj('meuId'); // findObj retorna um objeto
}

setor_class.prototype.Exibir = function() {
  this.obj.style.display = 'block';
  this.aberto = true;
}

setor_class.prototype.Ocultar = function() {
  this.obj.style.display = 'none';
  this.aberto = false;
  outraFuncao();
  outraCoisa();
}


var setor1 = new setor_class;
setor1.Exibir();
setor1.Ocultar();


MAS EU NÃO QUERO CHAMAR MÉTODOS, eu quero apenas alterar uma propriedade e uma ação é feita, deste jeito:

var setor1 = new setor_class;
setor1.aberto = true; // chamaria função Exibir()
setor1.aberto = false; // chamaria função Ocultar()
setor1.aberto = 'bolinha'; // dá erro, dizendo que o valor não é esperado
setor1.aberto = null; // dá erro, dizendo que o valor não é esperado
setor1.aberto = 1; // dá erro, dizendo que o valor não é esperado

etc.

Como eu faço isto? Como faço que "setor1.aberto = true;" chame a função "Exibir()" ?

Nenhum comentário: