Newsgroup: it.comp.lang.javascript
Titolo: Estendere un oggetto con XMLHttpRequest()

Vorrei capire se è possibile estendere un oggetto, già istanziato, con le
proprietà di un altro: XMLHttpRequest().
Ho provato con una normale funzione "extend" (Object.prototype.extend) per
l'oggetto, ma, come da manuale, non va.
Es:
function oggettoA() {
    this.metodoA = function() {alert('metodoA')};
    this.bind = function () { this.extend(new XMLHttpRequest()) };
}
var A = new oggettoA();
A.bind();
Prima di richiamare un qualsiasi metodo di XMLHttpRequest() già mi genera
l'errore al bind():
Errore: uncaught exception: Permesso negato per ottenere la proprietà
XMLHttpRequest.channel
Se provo a eseguire questa operazione (in teoria simile) va tutto per il
meglio:
function oggettoA() {
    this.metodoA = function() {alert('metodoA')};
    this.bind = function () { this.extend(new oggettoB()) };
}
function oggettoB(){
    this.metodoB = function() {alert('metodoB')};
}
var A = new oggettoA();
A.bind();
A.metodoB();
In parole povere bisognerebbe far diventare A, già istanziato con il
costruttore oggettoA(), un oggetto XMLHttpRequest() ([object
XMLHttpRequest]) con la stessa operazione eseguita prima. E' possibile?
Ho provato anche con:
...this.bind = function() { this.constructor = new XMLHttpRequest() }
il costruttore è un oggetto XMLHttpRequest ma A non lo è! :)
Thanks,
Max

 il costruttore è un oggetto XMLHttpRequest ma A non lo è! :)
Ti ripeto, devi un attimo capire che JS non è basato su classi. Nella
Client-Side Javascript Guide 1.3 c'è un breve capitolo che spiega alcune
tra le differenze che vi sono tra un linguaggio class-based (java) e
prototype-based (javascript).
http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.3/guide/frames.html
-- 
var SEI	= "1+5", NOVE = "8+1";
// dump TheAnswerToLifeTheUniverseAndEverything :
alert("Cosa ottieni moltiplicando "+
	eval(SEI)+" per "+eval(NOVE)+"? "+eval(SEI+"*"+NOVE));


Ma __proto__ oltre Netscape/Mozilla da quali altri browser è supportato?
Thanks,
Max

 Ma __proto__ oltre Netscape/Mozilla da quali altri browser è supportato?
Solo da quelli. Javascript non è usato da nessun'altro browser. Gli altri
browser usano linguaggi loro, derivati ugualmente dalle specifiche
ECMAScript. IE, ad esempio, usa JScript.
Considera cmq che anche l'oggetto XMLHttpRequest() non è supportato da
tutti i browser. In IE devi istanziare l'activeX relativo.


 poco.
[CUT]
Mi viene sempre da ridere quando vedo che online molta gente si spertica per
spiegare come programmare in OOP con javascript. Dato che č un'accozzaglia
di criteri di molti linguaggi e script la programmazione a oggetti č
aleatoria. Sono molti anni che uso javascript ma ho avuto sempre delle
grosse difficoltŕ a entrare nel "non-concetto" di OOP di questo linguaggio.
Metti che la brava M$ vuole sempre dare un'interpretazione propria alle cose
(che, sinceramente, dopo tanti anni possiamo dire che ciň non vuol
significare che intende "monopolizzare" ma che non sa affatto "lavorare") e
ti ritrovi con un mare di problemi. Meno male che c'é la fondazione Mozilla
:)
Thanks,
Max

 :)
Vero, ma speriamo che abbandoni certe brutte strade che sta prendendo...
brr.
