Orientação A Objetos
#1
Posted 07/08/2008, 12:23
function metodo1() {
document.write("Saldo: " + this.saldo");
}
function Conta(corr, saldo) {
this.correntista = corr;
this.saldo = saldo;
this.imprimeSaldo = metodo1;
}
cc1 = new Conta("Fernando", 800);
cc1.imprimeSaldo();
Como acessar esses dados? Não está aparecendo na tela: "Saldo: 800.
O que está errado? Valeu
#2
Posted 07/08/2008, 12:29
Seu codigo:
document.write("Saldo: " + this.saldo");
Tirado aspas:
document.write("Saldo: " + this.saldo);
Testei aqui e funcionou.
Falou abraços.
Edição feita por: malukocs, 07/08/2008, 12:30.
#3
Posted 07/08/2008, 12:57
Agora e se eu quiser fazer isso, inserindo isso numa div por exemplo?
div id="mostra">
document.getElementById('mostra').innerHTML = "Saldo: " +saldo
seria isso?
document.getElementById('escreve').innerHTML="Saldo: " + this.saldo;
<body>
<div id="escreve"></div>
Esse não funcionou
Edição feita por: fekz, 07/08/2008, 13:01.
#4
Posted 07/08/2008, 13:05
Você está pedindo para o JS executar o código antes dele ter carregado a estrutura em HTML...
Muda de posição que irá funcionar.
<div id="escreve"></div> <script> //seus codigos aqui... </script>
P.S: Use a tag code do fórum para postar códigos.
Exemplo:
[code ]seu codigo[/code ]
Retira os espaços e faz como esse exemplo para poder funcionar
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.
#5
Posted 07/08/2008, 13:38
<html> <head> </head> Não adiantou nada, cara. Qual a diferença de por no head ou não. Eu sempre ouço que tenho que por tudo no head. <body> <div id="escreve"></div> <script> function metodo1(){ document.getElementById('escreve').innerHTML = "Saldo: " +saldo } function Conta(corr, saldo) { this.correntista = corr; this.saldo = saldo; this.imprimeSaldo = metodo1; } cc1 = new Conta("Fernando", 800); cc1.imprimeSaldo(); </body> </html>
#6
Posted 07/08/2008, 14:49
A propósito... Eu testei aqui e funcionou.
P.S: A tag code é apenas para o código. Não poste dentro dela... A sua mensagem você digita fora...
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.
#7
Posted 08/08/2008, 16:28
Mas e se eu quiser criar mais contas?
exemplo:
<html> <head> </head> <body> <div id="escreve"></div> <script> function metodo1() { document.getElementById('escreve').innerHTML="Nome: " + this.correntista + "<br />Saldo: " + this.saldo; } function Conta(corr, saldo) { this.correntista = corr; this.saldo = saldo; this.imprimeSaldo = metodo1; } cc1 = new Conta("Fernando", 940); cc1.imprimeSaldo(); cc2 = new Conta("Joao",2000); cc2.imprimeSaldo(); </script> </body> </html>
Se eu puser esse código, ele só mostra: Nome: João, Saldo: 2000.
Porque não mostra também o cc1?
Preciso fazer um loop?
Firehalk, pode ajudar?
Pode ajudar FireHalk?
#8
Posted 08/08/2008, 21:18
....innerHTML+="N...
#9
Posted 09/08/2008, 14:15
Mas poderia me explicar melhor?
porque pondo o mais = dá certo?
Blz, eu sei que o += pega o valor de antes e soma o valor sem apagar o valor de antes.
Mas como ele faz isso, se não tem um loop.
Ele pega, escreve um nome. E blz, porque não pára por aí?
#10
Posted 09/08/2008, 20:43
Não tem um loop, mas veja que você chama a mesma função duas vezes (cc1 e cc2), e isso faz com que um sobrescreva o outro. Por isso tem que fazer essa de concatenar os valores.
#11
Posted 09/08/2008, 21:09
Valeu cara, muito obrigado, entendi ;D
#12
Posted 11/08/2008, 10:14
new
, vai conter uma cópia da função. Então se você criar 10 objetos, o javascript tem que alocar na memória 10 vezes a funçao metodo1. Usando prototype, a função passa para o chainscope, e fica acessível para qualquer objeto definido futuramente. Exemplo:<script> function conta(corr, saldo) { this.correntista = corr; this.saldo = saldo; } conta.prototype.imprimeSaldo = function () { document.getElementById("teste").innerHTML += "<br /><br />Nome: " +this.correntista+ "<br />Saldo: " +this.saldo; } </script>
Depois você pode usar normalmente:
<div id="teste"><h1>Saldos</h1></div> <script> cc1 = new conta("Fernando", 940); cc1.imprimeSaldo(); cc2 = new conta("Joao",2000); cc2.imprimeSaldo(); </script>
Entendeu ?!
Yeah I do have some stories, and it's true I want all the glory ...
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)