Para começar, abra novamente o console do seu navegador e vamos praticar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // as dicas continuam as mesmas do último post, e eu acrescento essa:// para criar uma nova linha no Chrome e no Firefox (menos no Firebug)// você pode usar [SHIFT] + [ENTER]// para declarar uma função:function nome_da_funcao(param1, param2){ // aqui você faz alguma coisa útil alert(param1); // exibe o primeiro parâmetro alert(param2); // exibe o segundo parâmetro}// para executar a função:nome_da_funcao('primeiro', 2);// não é necessário passar todos os parâmetros, o seguinte é válido:nome_da_funcao(1); // o segundo valor será undefinednome_da_funcao(); // os dois valores serão undefined |
Outro detalhe interessante em Javascript: uma variável pode armazenar uma função, ou seja:
1 2 3 4 5 6 7 | var funcao = function() { alert("Essa função não faz nada");}// executando:funcao();funcao(1286, 'bla bla bla'); // parâmetros a mais? nada contra... |
Isso cria uma nova possibilidade: funções dentro de objetos, ou seja, métodos (lembrou de programação orientada a objetos? Então chegamos ao ponto interessante!).
Embora Javascript seja considerada por alguns “programadores” como uma linguagem sem orientação a objetos, Javascript utiliza sim alguns conceitos desse método de programação: classes (protótipos), atributos (propriedades), métodos (funções), herança, sobrecarga de métodos, public, private… alguns desses itens podem não ser tão fáceis de implementar como seria em C++, PHP, Java, etc., outros podem até ser mais simples!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | // construtor para uma "classe" Pessoa:function Pessoa() { // definindo as propriedades para o objeto e // inicializando com valores padrão: this.nome = ""; this.idade = 0; // criando métodos this.setNome = function(nome){ this.nome = nome; }; this.getIdade = function(){ return this.idade; };}// usando essa classe:var joao = new Pessoa();joao.setNome("João");// não é preciso utilizar métodos para atualizar as propriedades:joao.idade = 33;joao.nome += " da Silva"; // joao.nome = "João da Silva"// o construtor também pode receber parâmetros, para facilitar o trabalhofunction Carro(marca) { this.marca = marca; this.modelo = ""; this.ano = undefined;}var ferrari = new Carro("Ferrari");// ferrari.marca == "Ferrari"; |
Essas características vamos ver com mais detalhes nos próximos posts. Essa foi apenas uma introdução para mostrar uma ideia geral do que é possível fazer com Javascript, que não deixa nada a desejar a outras linguagens em questão de Orientação a Objetos.


