← Funcións | Clases and Objects | Clases → |
dentro dos idiomas actuais, que veñen principalmente das primeiras linguas estruturadas como Algol ou BCPL, o Capacidade de crear funcións para reutilizalas de varias maneiras, dentro do mesmo módulo de programa ou en diferentes módulos, foi un dos fundamentos da programación de sistemas informáticos. Non obstante, este paradigma foi curto para novas situacións que xurdiron ao longo do tempo, como a programación de videojuegos ou a intelixencia 3D e artificial. A finais dos anos 70, comezou a teorizar sobre as linguas de programación que utilizan entidades independentes que foron autónomas para levar a cabo as aplicacións. Como dixemos anteriormente, un programa está composto por código e datos. Os obxectos son unidades que conteñen o seu propio código e datos para a súa propia auto-operación. Podemos dicir que son programas dentro de programas.
Así, podemos darse conta de que os obxectos poden ser utilizados como variables, para o noso propio uso. Pero non podemos definir as variables de obxectos sen poder darlles unha forma. A forma dos obxectos son os datos (propiedades) e código (funcións) que contén o obxecto. Isto chámase clase de obxecto. Para definir clases en JavaScript, facémolo mediante funcións, como:
function Persona(nombre) { this.nombre = nombre; this.color_pelo = 'negro'; this.peso = 75; this.altura = 165; this.sexo = 'varón'; this.edad= 26; }
Imos estar ben a medida que esta función está estructurada. Chámase o constructor de clase, e nel definimos os datos da clase, que poderemos usar ao crear obxectos con el. Teña en conta que o uso da palabra reservado isto. Esta palabra serve para identificar o obxecto en si mesma dentro da definición da clase. Cando escribimos
this.peso = 75;
estamos a crear a propiedade de “peso” da clase “persoa”. Cando creamos unha propiedade no constructor e damos un valor, como neste caso, estamos a asignar un valor por defecto. Todos os obxectos creados con este constructor conterán unha propiedade de “peso” con ese valor inicial, aínda que entón podemos cambialo ao usar o obxecto. Para definir un obxecto desta clase, só teriamos que facer isto:
var hombre = new Persona('Pepe');
Aquí definimos o obxecto “home”, que conterá todo o propiedades definidas na clase de clase “persoa”. Se queremos cambiar o seu valor, só temos que facer algo así:
hombre.peso = 80;
Deste xeito, os datos definidos para este obxecto cambian. Pero se definimos obxectos de tipo máis persoa, cada un deles conterá as mesmas propiedades pero con valores diferentes. Ningún obxecto ten o mesmo valor que outro obxecto da mesma clase a menos que o asigne explícitamente.
var mujer = new Persona('Ana'); mujer.peso = 67; mujer.sexo = 'mujer';
Neste caso fixemos o mesmo, pero o indicamos O seu propio peso, independente da variable “home”. Así, podemos ter tantos obxectos da mesma clase que queremos realizar as operacións que son pertinentes. Unha última cousa sobre os construtores: como podemos ver, podemos pasar parámetros, que podemos converter nos valores das propiedades dos obxectos desta clase.