Você está aqui: JavaScript ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em JavaScript - Como declarar e criar novos objetos usando a notação de funçãoQuantidade de visualizações: 1688 vezes |
Embora o ECMAScript 2015 (também conhecido como ECMAScript 6 ou ES6) tenha incluído a palavra-chave class para permitir a declaração de classes JavaScript no estilo Java e C++, é comum encontrarmos códigos antigos (e até mesmo sendo desevolvidos) que ainda usam a notação de função. Sim, é possível usar new para criar um objeto a partir de uma função. Vamos ver como isso é possível? Comece analisando o seguinte código: <html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> // declara uma "classe" Produto function Produto(){ this.nome; this.preco; // método que permite definir o nome this.setNome = function(nome){ this.nome = nome; } // método que permite definir o preço this.setPreco = function(preco){ this.preco = preco; } // método que permite obter o nome this.getNome = function(){ return this.nome; } // método que permite obter o preço this.getPreco = function(){ return this.preco; } } // vamos criar um novo objeto Produto var p = new Produto(); p.setNome("Notebook AGT 250"); p.setPreco(2400); document.writeln("Nome: " + p.getNome()); document.writeln("<br>Preço: " + p.getPreco()); </script> </body> </html> Veja que aqui nós criamos uma "classe" com o nome de Produto, que possui dois atributos: nome e preco. Ela possui também quatro métodos: setNome(), setPreco(), getNome() e getPreco(). O fato de eu ter colocado classe entre aspas, é porque estamos na verdade criando funções, simulando o comportamento da palavra-chave class ES6. Ao executarmos este código nós teremos o seguinte resultado: Nome: Notebook AGT 250 Preço: 2400 E agora a notícia mais importante. Quando estamos criando classes JavaScript como objetos de função, nós não estamos limitados à criação de apenas um objeto (como ocorre na criação de classes usando a notação de objeto). Usando a notação de funções, nós podemos criar quantos objetos quisermos. Veja, por exemplo, como criar dois produtos (que possuem a mesma estrutura e comportamento da classe Produto, porém, com atributos diferentes): <html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> // declara uma "classe" Produto function Produto(){ this.nome; this.preco; // método que permite definir o nome this.setNome = function(nome){ this.nome = nome; } // método que permite definir o preço this.setPreco = function(preco){ this.preco = preco; } // método que permite obter o nome this.getNome = function(){ return this.nome; } // método que permite obter o preço this.getPreco = function(){ return this.preco; } } // vamos criar um novo objeto Produto var p = new Produto(); p.setNome("Notebook AGT 250"); p.setPreco(2400); document.writeln("Nome: " + p.getNome()); document.writeln("<br>Preço: " + p.getPreco()); // vamos criar mais um objeto Produto var p2 = new Produto(); p2.setNome("Impressora LX"); p2.setPreco(654.70); document.writeln("<br><br>Nome: " + p2.getNome()); document.writeln("<br>Preço: " + p2.getPreco()); </script> </body> </html> Ao executar o código novamente nós teremos o seguinte resultado: Nome: Notebook AGT 250 Preço: 2400 Nome: Impressora LX Preço: 654.7 |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
Delphi - Como criar chaves no registro do Windows usando o método CreateKey() da classe TRegistry do Delphi |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |