Newsgroup: it.comp.lang.javascript
Titolo: [javascript] Object Oriented - jsolite

Salve a tutti,
sto cercando di capire come utilizzare javascript per creare classi e
oggetti.
Nel corso delle mie ricerche ho trovato vari siti interessanti che riporto:
http://www.crockford.com/javascript/
http://www.sitepoint.com/print/javascript-objects
http://www.u.arizona.edu/~jscully/javafication.html
http://jsolait.net/
Volevo innanzitutto conoscere la vostra opinione in merito all'attendibilita
dei contenuti e sapere se si riescono a trovare info in italiano
sull'argomento.
Per iniziare volevo sviluppare un DateEngine composta da 3 select (Day,
month, year) che si aggiorna automaticamente in base alla scelta dell'utente
impedendogli di selezionare date non valide.
Pert fare questo pensavo di utilizzare jsolite per la gestione di moduli e
classi in combinazione con questo script trovato nel secondo link per la
gestione degli eventi:
Object.prototype.addProperty = function (sName, vValue) {
	this[sName] = vValue;
 
	var sFuncName = sName.charAt(0).toUpperCase() + sName.substring(1,
sName.length);
 
	this["get" + sFuncName] = function () { return this[sName] };
	this["set" + sFuncName] = function (vNewValue) {
	var vOldValue = this["get" + sFuncName]();
	var oEvent = {
		propertyName: sName,
		propertyOldValue: vOldValue,
		propertyNewValue: vNewValue,
		returnValue: true
		};
		this.onpropertychange(oEvent);
		if (oEvent.returnValue) {
			this[sName] = oEvent.propertyNewValue;
		}
	};
}
Ma la domanda che mi assilla di piu è:
Non è che cosi facendo si cerca di forzare Javascript a lavorare in un modo
per il quale non è stato concepito?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 per il quale non è stato concepito?
Beh, non proprio. Anche se io personamente tendo ad evitare di assegnare
direttamente ad "Object" alcuna proprieta' o metodo tramite prototype.
Cmq io penso che questo, per quanto riguarda il tuo diretto problema, serva
il giusto.
La tua questione infatti parte dall'interazione DOM/Javascript, e su quello
devi lavorare. Altrimenti rischi di avere una struttura javascript
perfettamente orientata ad oggetti, ma che non riesce ad interagire con
efficienza con il DOM in entrambe le direzioni, da DOM a JS e da JS a DOM
(nel tuo caso si traduce con le tre select).
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)
on air ~ "Ligabue - Piccola città eterna"

 per il quale non è stato concepito?
Secondo me se non vuoi avere la classica nozione di ereditarietà hai già
tutto. Definisci la tua "classe" direttamente attraverso il costruttore 
e poi utilizzi il suo prototipo per definirne i metodi:
function MyClass()
{
   this.value = ....
}
MyClass.prototype.myMethod = function()
{
    // ....
}
Et voila...
Per l'utilizzo che se ne deve fare all'interno delle pagine HTML gestire
complesse gerarchie di oggetti mi sembra eccessivo. Inoltre
JavaScript è un linguaggio molto snello, e questo rappresenta la sua
bellezza nei confronti di altri linguaggi più "pesanti" tipo Java. Ed è
questa snellezza che lo rende così utile all'interno delle pagine web.
Io penserei al fare il contrario: non è possibile far assomigliare Java
a JavaScript e non viceversa?
Ma forse ci sarà JavaScript 2.0 che accontenterà un po' tutti...
Gaetano