Hanlle Nicolas escribió:

>> En cuanto a crear objetos (instancias de clases):
>>
>> function Circle(r) {
>>    this.radius = r;
>> }
>
> aqui creaste una funcion llamada "circle" que tomaria el parametro r
> y se lo asignaria a el objeto radius..asi es?....el this exactamente
> para que?.

En realidad Circle no es una simple "función", sino que es la forma de 
crear "clases" que tiene JavaScript (es similar a como se hacía en 
ActionScript 1.0). Al no existir la forma típica de otros lenguajes 
"class Circle", se usa "function Circle".

Te podrás dar cuenta de que no estás declarando una simple función 
cuando veas la palabreja "this" dentro de la función, si aparece esta 
palabra, es que no es una función sino un molde para crear un objeto 
como lo haría class en otros lenguajes.

El this hace referencia a la "instancia" de esta clase de objetos 
Circle, como no sabemos qué nombre de instancia tendrá, la llamamos "this".

Por lo tanto,
this.radius = r;
significa que le estás asignando a la propiedad "radius" de la instancia 
que sea (this) el valor "r". El objeto no es radius, el objeto será la 
instancia de Circle que estés utilizando en ese momento, se llame como 
se llame. Radius es solo una propiedad que le estás agregando al momento 
de declarar la clase Circle.

>> Circle.prototype.area = function() {
>>    return Math.pow(this.radius, 2) * Math.PI;
>> };
>>   
>
> esta parte no la entiendo no entiendo por que "circle.prototype.area"
>  
>
Si luego de creada la clase (en tiempo de ejecución, cuando ya has 
instanciado algo) deseas agregarle un nuevo método a la clase Circle  
(en este caso, el método "area"), lo debes hacer a través de la 
propiedad "prototype", que te permite ingresar al "molde" donde fue 
declarado Circle, para agregarle un nuevo método (función), en este 
caso  llamado "area".

La función que está luego del signo igual no es anónima, se llama 
"area". Le estás diciendo: agregarle al prototipo de Circle (lo que 
sería la "clase Circle") un método llamado "area" que ejecute lo que 
viene entre las llaves del function que está a continuación del signo 
igual.

Saludos!

Hernán Beati
-------------------
www.saberweb.com.ar
--------------------------------
_______________________________________________
javaEScript mailing list
javaEScript@scriptia.net
http://lists.scriptia.net/listinfo.cgi/javaescript-scriptia.net

Responder a