Ir para conteúdo
Fórum Script Brasil
  • 0

encapsulamento


Rafael Laurindo

Pergunta

Pessoal, se eu definir um construtor no javascript as propriedades dele não podem ser enxergadas em outro construtor, sendo eles parte de um mesmo objeto literal?

Teste = {

    test : function(){
        this.att = 'hello'
    },

    cls : function(){
        alert(this.att)
    },

}
var t = new Teste.cls() //saída undefined

É isso mesmo, ou tem algo errado?

Editado por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Você não está chamando o método test, por isso this.att é indefinido

<script type="text/javascript">
window.onload = function() {
    Teste = {

        test : function(){
            this.att = 'hello'
        },

        cls : function(){
            alert(this.att)
        }

    }

    var t = Teste;
    t.test();
    t.cls();
    
    var x = Teste;
    x.test();
    t.cls();
}
</script>

Um abraço.

Editado por Willian Gustavo Veiga
Link para o comentário
Compartilhar em outros sites

  • 0

Entendi. Mas agora fiquei intrigado. O evento onload do body, só acontece quando dou refresh na página ou quando a página é carregada a primeira vez?

De uma olhada no código abaixo.

TextEdit = {
    
    start : function(name)
    {
        this.element = window.frames[name]
        this.textEdit = this.element.document
        this.textEdit.designMode = 'on'
        
        //Define um estilo para o texto no iframe 
        this.textEdit.open()
        this.textEdit.write("<style type='text/css'>body{font-family:courier new; font-size:10pt;}")
        this.textEdit.close()
        this.element.focus()
    },
    
    italic : function(){
        this.textEdit.execCommand('italic', false, null)
    },
    
}

Até onde sei, nenhum att do js, neste caso, é estático, salvo os que estão recebendo uma função, e mesmo assim, eles só não são redefinidos em tempo de execução. Chamo o método estático start no evento onload do body, e só depois em um link chamo o italic, no evento onClick, a pergunta que não quer calar é, como o italic funciona, se o this.textEdit, só é definido quando o start é chamado, e neste caso não o chamo, somente no evento onload? Só se o evento onload é chamado toda vez que faço algo no corpo do html, como clicar em um botão. Entendeu? E aí, o que acha?

Editado por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...