INUTILE ?????? MA STAI SCHERZANDO ???????Originariamente inviato da carlomarx
Rispondo al volo qui a quello che scrivi in questo post: http://forum.html.it/forum/showthrea...8#post13643018 Poi quando ho un attimo rispondo nel dettaglio alle questioni che poni qui. Intanto this.privateAttr è un errore: casomai solo privateAttr senza this. Poi, quella di "estendere lo scope" è una cosa inutile in un caso come quello: di solito è una cosa rara, che si fa soltanto quando è impossibile passare il this alla funzione in quanto chiamata in automatico (cosa che di solito succede soprattutto quando si ha a che fare con gli eventi). Lì il problema lo risolvi così:
codice:var a = function () { this.publicAttr = "attr pubblico" ; var privateAttr = "attr privato" ; // var self = this ; (inutile) this.publicMethod = function () { alert( this.publicAttr ); alert( privateAttr ); // ho tolto il this } var privateMethod = function () { alert( this.publicAttr ); alert( privateAttr ); // ho tolto il this } this.publicMethod(); privateMethod.call(this); }
Vedi come alla fine mi dai costantemente ragione !!!
JAVASCRIPT NON E' OOP !!!! non hai gestione private public e l0utilizzo di this e var per emulare lo scoping pubblico/privato si FA ESISTE ED E' UNA TECNICA USATA!!!!
E ripeto dimmi come fai ad usare il riferimento a this in un metodo pseudoprivato .... a volte servono e devi farli... e come accedi a this se non usi l'istruzione che tu ritieni tanto inutile ??????????
Sopra non hai risolto nulla hai solo cambiato lo scoping degli attributi. ! E grazie che se cambi lo scoping funiona !!! E' come dire devo fare una torta con la farina, ma ho solo il grano elo macino per avere la farina. Mentre tu mi dai una soluzione non macinare il grano usa la sabbia !
Ma per favore !
QUesto e' tutto lambda calcolo => LINGUAGGIO FUNZIONALE !! E ma guarda un po' se non e' un notazione json ..... quella che tanto aborri e che jquery usa ovunque... e che e' una sintatti davvero comoda per fare strutture dati al volo.Originariamente inviato da carlomarx
La cosa è molto sensata, perché l'oggetto this non è ereditato staticamente, ma può cambiare da chiamata a chiamata. Io posso chiamare il metodo di un oggetto e applicarlo a un altro oggetto, a quel punto nonostante Metodo sia un metodo dell'oggetto A, erediterà il this dell'oggetto B a cui lo applico:
codice:var oggettoGenerico = { "0": "ciao mondo", "1": "hello world", "length": 2 } var arrayVuoto = []; alert(arrayVuoto.join.call(oggettoGenerico, "|"));
Le funzioni private NON ESISTONO ! Non c'e' nulla di questotipo in javascript. Sono solo simulazioni del comportamento dello scoping. Poiche js non e' un linguaggio ad oggetti!!!Originariamente inviato da carlomarx
In questo caso ho cambiato il this di un metodo pubblico dell'oggetto arrayVuoto qual è join() e l'ho applicato a oggettoGenerico, che non lo possiede, ma di conseguenza questo discorso vale anche per le funzioni "private".
Adesso devo proprio scappare. Risponderò con calma.![]()
Ogni cosa che dici lo conferma, e ogni tuo tentativo di negare questa evidenza non fa altro che rafforzare quanto dico.

Rispondi quotando