[LatinaLUG] OT: oggetti in javascript

Mirko Prota mirkos93@gmail.com
Gio 6 Ott 2016 21:59:22 CEST


Ciao Jusi,
per chiamare la funzione "per" all'interno di rec, dovresti aggiungere un
paio di parentesi:

<script language="javascript" type="text/javascript">
var r=new rec(7,4);
s="x="+r.x+"<br>y="+r.y+"<br>";
s+="area:"+r.area+"<br>perimetro="+r.per()+"<br>";
document.write(s);
</script>

Ambiguo comunque il fatto che ti printi il testo della funzione..

Ciao
Mirko

Il giorno 6 ottobre 2016 21:35, Jusi Pomenti <jusipom@gmail.com> ha scritto:

> Ciao,
>
> scusate se  sono OT,ma ho un problema nella definizione di oggetti
> javascript.Non avendoli mai usati,ho scritto questo semplice  script per
> capire  come funzionano gli oggetti in questo linguaggio:
>
> <script language="javascript" type="text/javascript">
> function calcola_area(x,y)
>           {
>                return x*y;
>           }
> function rec(x,y)
>     {
>        this.x=x;
>        this.y=y;
>        this.area=calcola_area(this.x,this.y);
>        this.per=function()
>                     { return 2*(this.x*this.y) };
>     }
> </script>
>
> richiamandolo cosi':
>
> <script language="javascript" type="text/javascript">
> var r=new rec(7,4);
> s="x="+r.x+"<br>y="+r.y+"<br>";
> s+="area:"+r.area+"<br>perimetro="+r.per+"<br>";
> document.write(s);
> </script>
>
> l'output che ottengo  è::
>
> x=7
> y=4
> area:28
> perimetro=function () { return 2*(this.x*this.y) }
>
> L'area viene calcolata bene ma da una funzione esterna all'oggetto per cui
> non  rispetta la regola dell'incapsulamento propria dell'OOP;
>
> La funzione "per",interna all'oggetto,dovrebbe  essere il  modo corretto
> di definire un  metodo e dovrebbe restituire 22 invece restituisce il
> testo della funzione stessa;perche'?
>
> Ciao e grazie
>
> Jusi
>
>
> --
> -------------------------------
> Junior Silvestro Pomenti
> Latina
> Email: jusipom(at)gmail.com
> -------------------------------
>
> _______________________________________________
> http://www.llg.it
> latina mailing list
> latina@lists.linux.it
> https://lists.linux.it/listinfo/latina
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/latina/attachments/20161006/249e0bea/attachment.html>


Maggiori informazioni sulla lista latina