Saltar para o conteúdo

JavaScript/Objetos

Origem: Wikilivros, livros abertos por um mundo aberto.

Definição de Objeto

[editar | editar código-fonte]

Podem ser declarados com propriedades e valores delimitados por chaves {}, ou através de funções.

Exemplo:

var pessoa = {
    nome: "Sérgio",
    altura: 1.72,
    nascimento: new Date(1969,1,4)
};

Ou então:

function objetoPessoa() {
    this.nome = "Sérgio";
    this.altura = 1.72;
    this.nascimento = new Date(1969,1,4)
}
var pessoa = new objetoPessoa();
Observações: O parâmetro de mês na criação do objeto Date inicia com 0; ou seja, 1 significa Fevereiro.

Para acessar qualquer atributo do objeto, basta informar o nome do objeto seguido por seu atributo após um ponto (.).

Exemplo:

alert(pessoa.nome);
alert(pessoa.altura);
alert(pessoa.nascimento);

Também podem-se atribuir métodos a objetos, da seguinte forma:

function mostrePessoa() {
    alert(this.nome + "\n" + this.altura + "\n" + this.nascimento);
}
var pessoa = {
    nome: "Sergio",
    altura: 1.72,
    nascimento: new Date(1969,1,4),
    mostre: mostrePessoa
};
pessoa.mostre();
pessoa.nome = "eduardo";
pessoa.altura = 1.78;
pessoa.nascimento = new Date(1975, 6, 25);
pessoa.mostre();

Métodos também podem ser atribuídos diretamente no objeto, sem a necessidade de especificar primeiro a função.

var pessoa = {
    nome: "Sergio",
    altura: 1.72,
    nascimento: new Date(1969,1,4),
    mostre: function(){
        alert(this.nome + "\n" + this.altura + "\n" + this.nascimento);
    }
};
pessoa.mostre();
pessoa.nome = "eduardo";
pessoa.altura = 1.78;
pessoa.nascimento = new Date(1975, 6, 25);
pessoa.mostre();

Pode-se acrescentar métodos especiais para tratamento das operações de get e de set, exemplo:

    var conta={
        valor:0,
        set deposito(x) {
            this.valor += x;
        },
        set saque(x) {
            this.valor -= x;
        },
        get provisao() {
            return this.valor/4;
        }
    };
    conta.deposito = 100;
    conta.saque = 50;
    alert("provisão = " + conta.provisao + "\n saldo = " + conta.valor);