Sie sind auf Seite 1von 4

Las propiedades estaticas se asignan a la clase pero no a las instancias.

<script>

console.log(Math.PI);

function Convertidor(){

Convertidor.GRADOS_A_RADIANES =Math.PI/180;
Convertidor.RADIANES_A_GRADOS =180/Math.PI;

console.log('180 grados son: ' + 180*Convertidor.GRADOS_A_RADIANES + '


radianes.');
console.log('2PI radianes son: ' + 2*Math.PI*Convertidor.RADIANES_A_GRADOS +
' rados.');

</script>
-----------------------------------------------------------------------------------
----------------------
Las Propiedades publicas seran accesibles desde dentro de su clase y desde sus
instancias.

<script>

function Persona(dni, nombre){


this.dni = dni ;
this.nombre = nombre ;
}

var yo = new Persona('12345', 'Marcos');


var tu = new Persona();

tu.dni = '67890';
tu.nombre = 'Pedro';

tu['nombre'] = 'Otro';

console.log(yo);
console.log(tu);

</script>
-----------------------------------------------------------------------------------
----------------------
Las propiedades privadas son propiedades de una clase pero solo accesibles desde su
clase.

Si algun metodo quiere tener accso a una propiedad privada tiene que declararse
dento de la clase.

<script>

function Persona (dni, nombre) {


var edad = 0;
// Mejor this._edad = 0; El _ Guion bajo nos indica que es privada.

this.dni = dni;
this.nombre = nombre;
// Metodos que accedan a las propiedades o metodos privados aqui.
}

var yo = new Persona ('12345', 'Marcos');


console.log(yo.edad);
console.log(yo.dni);

</script>
-----------------------------------------------------------------------------------
----------------------
Metodos estaticos se asocian directamente a la clase y no asus estancias.

<script>

console.log(Math.PI);

function Convertidor(){

Convertidor.GRADOS_A_RADIANES =Math.PI/180;
Convertidor.RADIANES_A_GRADOS =180/Math.PI;

Convertidor.aRadianes = function (grados) {


return grados * Convertidor.GRADOS_A_RADIANES;
}

Convertidor.aGrados = function (radianes) {


return radianes * Convertidor.RADIANES_A_GRADOS;
}

console.log('180 grados son: ' + Convertidor.aRadianes(180) + ' radianes.');


console.log('2PI radianes son: ' + Convertidor.aGrados(2*Math.PI) + '
grados.');

</script>
-----------------------------------------------------------------------------------
----------------------
Metodos publicos.

<script>

function Persona (dni, nombre) {


this.dni = dni;
this.nombre = nombre;

// Si el metodo lo declaramos de esta forma con this y dentro de la


declaracion de la
// clase lo que pasara que cada instancia (Objeto) tendra un metodo
saludar y esto ocuparia
// mucho espacio y no nos interesa ya que cada instancia (Objeto) si
que tendra su propio
// dni su propio nombre pero saludar es general para todas las demas
instancias (Objetos).

this.saludar = function (nombre) {


console.log (this.nombre + ' te saluda ' + nombre);
}

var yo = new Persona ('12345', 'Marcos');


yo.dni = '67890';
yo.saludar('Pepito');

</script>

Esta es la forma correcta.

<script>

function Persona (dni, nombre) {


this.dni = dni;
this.nombre = nombre;
}

Persona.prototype.saludar = function (nombre) {


console.log (this.nombre + ' te saluda ' + nombre);

var yo = new Persona ('12345', 'Marcos');


yo.dni = '67890';
yo.saludar('Pepito');

</script>
-----------------------------------------------------------------------------------
----------------------
Metodos privados.

<script>

function Persona (dni, nombre) {


var edad = 0;

this.dni = dni;
this.nombre = nombre;

// Metodos que accedan a las propiedades o metodos privados aqui


function envejecer() {
edad++;
}
}

Persona.prototype.saludar = function (nombre) {


console.log (this.nombre + ' te saluda ' + nombre);

var yo = new Persona ('12345', 'Marcos');


console.log(yo.edad);
// Devuelve undefined ya que edad no se encuentra en el objeto
// al no estar declarada a traves de this.

yo.saludar ('Pepito');
yo.envejecer ();
</script>

-----------------------------------------------------------------------------------
----------------------

-----------------------------------------------------------------------------------
----------------------

Das könnte Ihnen auch gefallen