Pagina 5 di 7 primaprima ... 3 4 5 6 7 ultimoultimo
Visualizzazione dei risultati da 41 a 50 su 64
  1. #41
    il this è tra i return più usati di prototypes e non, per il semplice motivo che ti permette di fare questo:
    codice:
    Function.prototype.method = function(name, func){
    	this.prototype[name] = func;
    	return this;
    };
    
    function Parenizor(){};
    Parenizor
    	.method('setValue', function(value){this.value = value;})
    	.method('getValue', function(){return this.value;})
    	.method('toString', function(){return '('+this.getValue()+')';})
    ;
    
    var	instance = new Parenizor();
    instance.setValue(3);
    alert(instance);	// (3)
    L'utilizzo di method invece è per non perdere il costruttore dalle istanze, altro argomento mai capito a pieno da molti frameworks ...
    codice:
    function Parenizor(){};
    Parenizor.prototype = {
    	doStuff:function(){
    		alert(this.constructor);
    	}
    };
    (new Parenizor).doStuff();	// Object
    
    
    function Parenizor2(){};
    Parenizor2.prototype.doStuff = function(){
    	alert(this.constructor);
    };
    (new Parenizor2).doStuff();	// Parenizor2
    Quindi con method non sovrascrivi la prototype nativa, ed in core, come nel linguaggio, il costruttore sarà quello giusto.

    In Base ed altri sistemi, il mio extend compreso, il costruttore viene comunque ridefinito perchè se un oggetto contiene un parametro constructor e viene assegnato, anche fosse in for(in) ad una prototype, si rischia di perdere il costruttore.




    [edit]
    Originariamente inviato da whisher
    si una riga sotto

    ad ogni modo inherit è veramente tosto e molto
    ostico da digerire alla prossima
    se vuoi te lo spiego, ma ti prego dammi un link che non avessi mai letto più di mezzo post di Dustin Diaz che è più un designer che un programmatore ... e non so di cosa tu stia parlando
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  2. #42
    Originariamente inviato da andr3a

    [edit]

    se vuoi te lo spiego, ma ti prego dammi un link che non avessi mai letto più di mezzo post di Dustin Diaz che è più un designer che un programmatore ... e non so di cosa tu stia parlando

    Sorry sono andato in confusione crockford in Sugar


    Grazie per la cortesia.

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #43
    Originariamente inviato da whisher
    Sorry sono andato in confusione crockford in Sugar
    uò uò ... fermati, quella pagina è stra datata, non a caso ho linkato l'altra, che comincia così
    Five years ago I wrote Classical Inheritance in JavaScript. It showed that JavaScript is a class-free, prototypal language, and that it has sufficient expressive power to simulate a classical system. My programming style has evolved since then, as any good programmer's should. I have learned to fully embrace prototypalism, and have liberated myself from the confines of the classical model.
    ... la classical non è tutta errata, ma la prototypal è l'ereditarietà in JavaScript


    P.S. confessione: anche io mi sono evoluto, per questo ho scritto che molto di quanto detto lo riscriverei ...ma in parte l'ho già fatto
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #44
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Originariamente inviato da whisher
    Grazie quando ti prendono queste cisti
    ci fai impazzire




    @Linusss

    Hai chiesto AIUTO in questo forum e ti è stato dato
    in abbondanza sebbene tu abbia dato a qc dell'incompetente
    abbi il buon senso per lo meno di ringraziare una persona che ha perso parte del suo tempo per spiegarti come funzionano
    le cose in js per il tuo attegiamento non ho PAROLE
    Se non hai parole allora non sprecarle per ste stronzate, e rileggiti bene i miei interventi visto che non hai capito nulla del mio atteggiamento. Nonostante questo ti rispondo.
    Io l'ho ringraziato a tempo debito.
    Successivamente ho chiesto un chiarimento su una cosa scritta da lui, e ancora non capisce che gli ho fatto gentilmente notare che quello che ha scritto è incompleto.
    Lui dovrebbe ringraziare me.

    Per il discorso del polimorfismo ho affermato che non esiste proprio perchè è ovunque non essendoci necessità di dichiarare il tipo di dato, quindi cade l'importanza per una classe figlia essere instanceof della classe padre.
    Volevo solo dire quello.

    Ora finisco di risponderti per il post precedente, lo faccio ora perchè sono uscito, non perchè non mi sono chiare le cose che hai scritto, tanto per essere chiari.
    La prima parte non mi dice nulla di nuovo, quello l'avevo capito grazie alla tua pillola e grazie alla molta roba che mi sto leggendo...
    L'ultima parte:
    Cosa significa? Significa che ogni istanza di Pluto avrà in prototype un'istanza di Pippo, con quella variabile, quelle due funzioni, appartenenti tutte ad un unico scope, di qui il divertimento del linguaggio, che non ha niente da rimpiangere, ma tanto di divertente e tanto ancora da imparare.
    Bastava che alla mia domanda di chiarimento mi rispondevi questo, visto che dalla tua pillola non è per niente chiaro, e visto che uno che conosce l'OO non si aspetta questo comportamento da un'ereditarietà fra classi.
    E se accetti un consiglio, aggiungi questa spiegazione, e aggiungi come far diventare questa pseudo eridatarità una vera ereditarietà.

    Per quanto riguarda il discorso del Java non sto nemmeno a discutere perchè non voglio creare un inutile flame.
    Forum Additive monitora le discussioni più importanti!

  5. #45
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Originariamente inviato da Linusss
    Ma è normale che con l'ereditarietà prototipale le propietà e i metodi private della classe dalla quale si va ad eriditare siano poi in comune fra tutti gli oggetti della classe derivata?
    Mi spiego:
    codice:
    	function Test() {
    		var saluto=null;
    		this.saluta = function() {
    			alert("Ciao");
    		};
    		this.salutaTest = function() {
    			alert("Ciao Test");
    		};
    	};
    	function SubTest(){
    		this.saluta = function() {
    			alert(saluto);
    		};
    		this.setSaluto=function(s){
    			saluto=s;
    		}
    	};
    	
    	SubTest.prototype = new Test;
    	
    	
    	var subtest1 = new SubTest();
    	var subtest2=new SubTest();
    	subtest1.setSaluto("Ciao test1");
    	subtest1.saluta();	// Ciao test1
    	subtest2.saluta();	// Ciao test1
    Come mai si comporta così?
    Vi sembra una domanda lecita ed educata o una stronzata mal posta?
    Forum Additive monitora le discussioni più importanti!

  6. #46
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Originariamente inviato da andr3a
    Linuss, è per questo che ti dicevo di usare classi ben collaudate, hai troppa confusione per partire con liberie tue. Ma fai come vuoi ... solo che quello che chiedi è banale per qualunque linguaggio, se conosci i principi dell'ereditarietà ... e pare di no, dato che parli di condivisione.

    Studia l'argomento, poi ci torni su ... consiglio spensierato
    E questa invece è una risposta intelligente, o mette mostra che chi l'ha scritta:
    1) non ha capito cosa ho chiesto
    2) è maleducato perchè mi ha dato dell'ignorante su cose che forse l'unico ad ingorare è lui.
    Forum Additive monitora le discussioni più importanti!

  7. #47
    Originariamente inviato da Linusss
    Se non hai parole allora non sprecarle per ste stronzate
    cerchiamo di mantenere termini adeguati ad un forum pubblico


    Originariamente inviato da Linusss
    Lui dovrebbe ringraziare me.
    grazie Linusss


    Originariamente inviato da Linusss
    Per il discorso del polimorfismo ho affermato che non esiste proprio perchè è ovunque
    anche l'idrogeno non esiste


    Originariamente inviato da Linusss
    non essendoci necessità di dichiarare il tipo di dato, quindi cade l'importanza per una classe figlia essere instanceof della classe padre.
    nell'ereditarietà non è importante essere figlio di un genitore? ... e che ereditarietà è?
    un instance of parent eredita i metodi del parent, se il parent ha un altro parent l'ultimo costruttore istanzierà con metodi dell' Object, del parent.parent, del parent e di se stesso.

    In Java puoi usare object come parametro, sbaglio? Poi fai boxing, casting o quello che vuoi ma il concetto dell'object è simile. Anche il C a volte ritorna un void, il che significa qualunque tipo di dato o niente ... ma tornando al JavaScript ...

    Un'istanza di un altro costruttore non eredita un tubo, solo da Object ... non è che se scrivi un costruttore tutto l'enviroment ne eredita le proprietà, ergo è fondamentale per la programmazione ad oggetti avere ereditarietà la programmazione ad oggetti non è fatta solo di polimorfismo ... per finire, JavaScript può anche essere scritto in strict type proprio perchè non è vero che non esistono i tipi. Io stesso ho implementato un modo per farlo, JavaStrict, che non essendo però una vera esigenza non è usato nemmeno in grandi progetti perchè non serve, mentre il polimorfismo è fondamentale e c'è.


    Originariamente inviato da Linusss
    La prima parte non mi dice nulla di nuovo, quello l'avevo capito grazie alla tua pillola e grazie alla molta roba che mi sto leggendo...
    la prima parte ti spiega il comportamento della seconda ... la prima parte ti mostra che ogni istanza, passando per new Constructor, ha il suo scope privato con metodi privilegiati e che questo scope non è condiviso.
    Ma se assegni questo scope ad una prototype ogni istanza utilizzerà un solo scope, quello dell'istanza assegnata in prototype. Questo è NORMALE se hai capito l'ereditarietà in JavaScript, come è normale se conosci ereditarietà a prototipi.


    Originariamente inviato da Linusss
    ... visto che uno che conosce l'OO non si aspetta questo comportamento da un'ereditarietà fra classi.
    ma tu non la conosci in assoluto, è questo che cerco di farti capire fin dall'altro 3D ... tu sei convinto di conoscerla e vuoi applicare le regole Java al JavaScript o fare continui confronti, quando sono due mondi completamente differenti e la programmazione ad oggetti è altrettanto differente. Fatti un giro in ocalm e prova a capirci qualcosa, poi apri un 3D dicendo: questo linguaggio è falso, simula, non è un linguaggio ad oggetti ... poi aspettati le pietre.


    Originariamente inviato da Linusss
    E se accetti un consiglio, aggiungi questa spiegazione
    io sto ancora scrivendo nel 3D JavaScript Object Oriented ... dove altro potrei aggiungere tutto quello che ho detto?


    Originariamente inviato da Linusss
    e aggiungi come far diventare questa pseudo eridatarità una vera ereditarietà.
    la vera eredità l'ho già spiegata, sei tu che continui a pretendere il tipo di eredità Java in un linguaggio basato su prototype


    Originariamente inviato da Linusss
    Per quanto riguarda il discorso del Java non sto nemmeno a discutere perchè non voglio creare un inutile flame.
    ma hai poco da discutere, i tuoi argomenti sono chiari: Java è il re dell'OO, tutto il resto è falso ... solo che hai sbagliato forum, questo è il forum JavaScript, un linguaggio Object Oriented diverso da Java, e diverso da tutti gli altri.

    Per approfondimenti sull'ereditarietà in Java, quella vera, mi raccomando, c'è il forum Java
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #48
    ... m'era sfuggito ...

    Originariamente inviato da Linusss
    mi ha dato dell'ignorante su cose che forse l'unico ad ingorare è lui.
    si Linusss, è come dici tu, devo imparare molto da te, spiegami cos'è la programmazione ad oggetti, il polimorfismo, l'ereditarietà, e soprattutto insegnami il JavaScript tramite esempi Java, grazie


    [edit]
    per curiosità, hai l'aria dello studente dopo il primo libro sul Java o dopo aver passato il primo esame sulla Programmazione Object Oriented insegnata in Italia, quella all'ultimo posto in europa per sviluppo e ITC ... quanti anni hai?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #49
    L'ho fatto ... dopo che anche John s'era dimenticato pezzi nonostante stia scrivendo un libro dal titolo "I segreti del ninja javascripter" ... ho ributtato giù tramite una pagina ricca di esempi, quelli che credo siano tutti i concetti inerenti l'ereditarietà in JavaScript.

    ... e scusate l'inglese, http://www.3site.eu/doc/

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #50
    Il popolo ringrazia


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.