notifications Notificaciones

Marcar todas como leídas

Ver más

lightbulb_outline

675 veces ha sido leído este artículo

Privacidad de atributos en Javascript

Lo lees en 1 Min.

Cómo es sabido una de las caracteristicas principales de cualquier lenguaje de programación orientada a objetos es la posibilidad de agregarle privacidad a algunos atributos previamente identificados, este principio tiene el nombre de encapsulamiento.

Esto nos ayuda para controlar el comportamiento de un objeto, denegando que otros puedan acceder o cambiar valores a sus atributos o usar sus métodos que no deberían de ser usados. Un ejemplo simple sería algo así:

Supongamos que tenemos una clase Automovil que tiene un atributo propietario que es un objeto de la clase Persona, si los atributos de la clase Persona no estuvieran protegidos , la Clase Automovil podría cambiar el nombre de una manera poco ortodoxa , en Java sería algo así "propietario.nombre = "Maria" " algo que no es recomendado y que es un error a la hora de programar Orientado a objetos, para eso tenemos que establecer como privado los atributos de Persona y crear métodos "Set" y "Gets" para los valores que queramos acceder en otra parte del programa "propietario.setNombre("Maria")".

Ahora el problema en Javascript es que no existe la forma de hacer los atributos privados (recordemos en Javascript no existen clases como tal ya que es orientado a objetos basado en prototipos). Supongamos que queremos hacer el mismo ejemplo (sin utilizar class de ecmascript 6) sería algo cómo:

let Persona = function(){
  let nombre = ''";
  let edad = ""
}

Aquí no hay una forma "sencilla" de hacer nombre y edad privados como por ejemplo en Java. Tendremós que solucionar esto de una manera un poco creativa. Una de las maneras de agregarle privacidad a los atributos de un Objeto en javascript sería la siguiente:

var Persona = function() {
  var nombre = ''";
  var edad = ''";
  return {
     setNombre: function(nom){
       nombre = nom;
    },
    getNombre: function() {
      return nombre;
    }
  }
}

Aquí aprovechamos el scope de función que tiene Javascript para hacer las variables privadas y tener acceso al valor de estas mediante los métodos get que creemos .

var Automovil = function(){
  var marca = ''";
  var propietario = new Persona();
  return {
    setMarca: function(marc){
      this.marca = marc;
    },
    getMarca: function() {
      return this.marca;
    },
    getPropietario: function(){
      return this.propietario;
    }
  }
}

var ford = new Automovil();

ford.getPropietario()   .setNombre('Maria');

console.log(ford.getPropietario().getNombre());

Y aquí completamos el ejemplo.

Recomendaciones

WSGI python

Lo lees en 2 Min.

Si eres un desarrollador Python y quieres comenzar a crear tus propios proyectos web, déjame dec...

 

Fechas con Python

Lo lees en 1 Min.

Para que nosotros podamos trabajar con fechas utilizando Python haremos uso de la librería dateti...

 

Los cursos más populares de 2018

Lo lees en 4 Min.

Continuando con el recuento del año en CódigoFacilito, y luego de haber escrito de los cursos gra...

 

Resumen de la semana. FNews 47

Lo lees en 2 Min.

Resumen de la Semana. FNews 47 Hola, Codiers. Como es costumbre, todas semanas tenemos un resum...

 

Comunidad