Skip to content

Instantly share code, notes, and snippets.

@fjunior87
Created April 29, 2011 14:20
Show Gist options
  • Save fjunior87/948366 to your computer and use it in GitHub Desktop.
Save fjunior87/948366 to your computer and use it in GitHub Desktop.
//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