Created
April 29, 2011 14:20
-
-
Save fjunior87/948366 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Criando um objeto | |
meuObjeto = {} | |
myObject = new Object() | |
date = new Date() | |
array = new Array() | |
//Definindo uma classe | |
/* | |
* Não há classes | |
* Uma Classe javascript é uma função | |
*/ | |
function Pessoa(){ | |
} | |
//Instanciando uma Pessoa | |
var p = new Pessoa() | |
//definir atributos | |
function Pessoa(){ | |
this.nome = "", | |
this.idade = 0, | |
this.sexo = "" | |
} | |
pessoa = new Pessoa() | |
pessoa.nome = "Junior"; | |
pessoa.idade = 25; | |
pessoa.sexo = "Masculino"; | |
console.log("Nome:" + pessoa.nome) | |
console.log("Idade:" + pessoa.idade) | |
console.log("Sexo:" + pessoa.sexo) | |
//definir metodos | |
function Pessoa(){ | |
this.nome = "", | |
this.idade = 0, | |
this.sexo = "", | |
this.falar = function(msg){ | |
console.log(msg); | |
} | |
} | |
p = new Pessoa(); | |
p.nome = "Junior"; | |
p.idade = 25; | |
p.sexo = "M"; | |
p.falar("Meu Nome é:" + p.nome); | |
p.falar("Minha Idade é:" + p.idade); | |
//Usando prototype | |
/* Adicionar atributos ou métodos a classe após sua definição*/ | |
//adicionar o metodo dizerNome | |
Pessoa.prototype.dizerNome = function(){ | |
return this.nome | |
} | |
//adicionar atributos | |
Pessoa.prototype.peso = 0 | |
pessoa = new Pessoa(); | |
pessoa.nome ="Junior"; | |
pessoa.peso = 25 | |
console.log("Nome:" + pessoa.dizerNome()) | |
console.log("Peso:" + pessoa.peso) | |
//Definindo Parametros para os contrutores | |
function Pessoa(nome){ | |
this.nome = nome, | |
this.sexo = "", | |
this.idade = 0 | |
} | |
p = new Pessoa("Junior") | |
console.log(p.nome) | |
//Usando valor default | |
function Pessoa(nome){ | |
this.nome = nome || "Unknown", | |
this.sexo = "", | |
this.idade = 0 | |
} | |
p = new Pessoa() | |
console.log(p.nome) | |
//Outra forma de definir um objeto com atributos e metodos: | |
meuObjeto = { | |
nome : "Junior", | |
idadde : 13, | |
falarNome: function(){ | |
return this.nome; | |
} | |
} | |
//Encapsulamento | |
//*using var | |
function Pessoa(){ | |
var segredo = "Meu segredo"; | |
this.publico = "Todos podem saber" | |
} | |
pessoa = new Pessoa() | |
console.log(pessoa.publico)//Todos podem saber | |
console.log(pessoa.segredo)//undefined | |
//metodo de acesso | |
function Pessoa(){ | |
var segredo = "Meu segredo"; | |
this.publico = "Todos podem saber" | |
//metodo privado | |
mudarSegredo = function(novoSegredo){ | |
segredo = novoSegredo | |
}; | |
this.contarSegredo = function(){ | |
return segredo; | |
} | |
this.novoSegredo = function(novo){ | |
mudarSegredo(novo); | |
} | |
} | |
pessoa = new Pessoa() | |
console.log(pessoa.publico)//Todos podem saber | |
console.log(pessoa.segredo)//undefined | |
console.log(pessoa.contarSegredo())//Meu segredo | |
pessoa.novoSegredo("Novo") | |
console.log(pessoa.contarSegredo())//Novo | |
//Herança | |
function Pessoa(nome){ | |
this.nome = nome || ""; | |
this.idade = 0; | |
this.falar = function(msg){ | |
console.log(msg) | |
} | |
} | |
function Funcionario(cargo){ | |
this.cargo = cargo || "", | |
this.salario = 0 | |
} | |
//utilizar o prototype | |
Funcionario.prototype = new Pessoa | |
func = new Funcionario("Policial") | |
func.nome = "Joao" | |
func.idade = 25 | |
func.salario = 800 | |
console.log("Funcionario 1:") | |
console.log("Nome:" + func.nome) | |
console.log("Idade:" + func.idade) | |
console.log("Cargo:" + func.cargo) | |
console.log("Salario:" + func.salario) | |
func.falar("Eu sou policial") | |
console.log("##############################") | |
console.log("Funcionario 2") | |
func2 = new Funcionario("Programador") | |
func2.salario = 1000 | |
console.log("Nome:" + func2.nome) | |
console.log("Idade:" + func2.idade) | |
console.log("Cargo:" + func2.cargo) | |
console.log("Salario:" + func2.salario) | |
//Inicializar variaveis herdadas da superclasse | |
function Funcionario(nome,cargo){ | |
this.base = Pessoa; | |
this.base(nome); | |
this.cargo = cargo || ""; | |
this.salario = 0; | |
} | |
Funcionario.prototype = Pessoa | |
func = new Funcionario("Dani","Enxadrista") | |
console.log("Nome:" + func.nome) | |
console.log("Idade:"+func.idade) | |
console.log("Cargo:" + func.cargo) | |
console.log("Salario:" +func.salario) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment