Newsgroup: it.comp.lang.javascript
Titolo: come si crea una classe in javascript

Ciao! :)
devo scrivere una classe in javascript che mi gestisce una scroll bar
fatta da me... lo scopo č poco importante.... non so il lessico mi potete
fare un esempio di classe che ha due propieta nome, cognome, un
costruttore e una funzione che stampa return nome + " " + cognome;
come si fa?
Non ho capito se bisogna mettere tutto in un file con il nome della
classe...la storia del costruttore.. che me  lo fai questo esempio??
Grazie mille ...
Ciao!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 come si fa?
Uhm
In JavaScript piů o meno puoi creare delle pseudoclassi...
prima di andare avanti: sei sicuro che per caso non ti interessa per java
anziché per javascript?
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.
--

 anziché per javascript?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 Sicurissimo!!!!
Puoi partire da qua:
http://makeashorterlink.com/?L541126A8


classe...la storia del costruttore.. che me  lo fai questo esempio??
Non hai limitazioni nell'inserire il codice dove preferisci :-)
'bye

 }
Cio' che hai scritto non ha molto senso; temo tu abbia sbagliato approccio.
Per farmi capire, hai provato a fare:
mpippo=new pippo();
 
alert(mpippo.getData());
?
-- 
ZER0://coder.gfxer.web-designer/
~ Ci siamo fatti una scopata cosi' eccezionale che anche i vicini hanno
fumato una sigaretta.

 classe..
No, quello e' java. Non e' che hai sbagliato NG, vero?
-- 
ZER0://coder.gfxer.web-designer/
~ Come devo regolare la stampante laser per stordire?
(How do I set a laser printer to stun?)

?
Se non gli passi i parametri avrai undefined undefined. Il costruttore
richiede due parametri, nome e cognome. In pratica e' come se passassi
undefined per i valori di pNome e pCognome e il costruttore finisce
con impostare le due proprieta' ad undefined. E' ovvio che se la
funzione/costruttore richiede due parametri tu li devi fornire.
Riscrivendo, comunque, in questo modo:
function pippo(){
}
pippo.prototype={
 nome : "nome",
 cognome : "cognome",
 setData : function(pNome, pCognome){
  this.nome=pNome;
  this.cognome=pCognome;
 },
 getData : function(){
  return this.nome+" "+this.cognome;
 }
}
Puoi usare benissimo:
 mpippo=new pippo();
 alert(mpippo.getData());
Ottenendo i valori di defaul, ma dovrai anche usare 
 mpippo.setData("foo", "bar"); 
prima di
 alert(mpippo.getData());
se vuoi inserire/avere i tuoi valori.
Non sono comunque sicuro al 100% di quello che intendevi.
'bye

 Se non gli passi i parametri avrai undefined undefined.
Appunto. Che senso ha che tu definisca nel prototype un nome/cognome, se
tanto poi li ri-definisci nella funzione? Un passaggio in piu', il
prototype non viene usato in questo modo.
O tralasci direttamente la parte del prototype riguardante le proprieta';
oppure scrivi:
function pippo(pNome,pCognome){
	this.nome=pNome||"";
	this.cognome=pCognome||"";
	return this;
}
Il metodo da te usato in quel post, proprio non riesco a inserirlo in
alcuna tipologia di approccio corretto.
E IMVHO, mi sembra che complichi un po' troppo le cose usando il prototype
in quel modo, soprattutto se devi spiegare a qualcuno "come fare le classi
in js" (che classi, poi, non sono)..
Inoltre il prototype non dovrebbe essere usato per definire un oggetto
nella sua interezza.
-- 
ZER0://coder.gfxer.web-designer/
~ L'ingegnere non vive, funziona.
on air ~ "Videogames Radio"

nella sua interezza.
Non e' che cambi molto dal definire il tutto nel constructor e se
l'oggetto e' un discendente di un altro oggetto usare il prototype
semplifica la vita.
Inoltre, volendo elencare le possibilita' di scrivere un oggetto,
nulla vieta di usare, in certe occasioni, direttamente:
 var mpippo={ 
 nome : "nome",
 cognome : "cognome",
 setData : function(pNome, pCognome){
  this.nome=pNome;
  this.cognome=pCognome;
 },
 getData : function(){
  return this.nome+" "+this.cognome;
 }
 }
'bye

 nulla vieta di usare, in certe occasioni, direttamente:
Questo si chiama Object Initializer, ed e' tutt'altra cosa.
E' l'equivalente di scrivere:
var mpippo=new Object();
mpippo.nome="nome";
etc.
Cosi' come:
var a=[];
e' l'Object Initializer di:
var a=new Array();
-- 
ZER0://coder.gfxer.web-designer/
~ La vita e' una tempesta, ma prenderla nel culo e' un lampo.
(B. Grillo)
