Novedades ES6

Novedades en ES6 - Nombres de métodos abreviados

A partir de (ES6), se introdujo una sintaxis abreviada para la definición de métodos en inicializadores de objetos. Es una forma abreviada para la asignación de una función al nombre del método. La sintaxis abreviada usa funciones con nombre en lugar de funciones anónimas (como en …foo: function() {}…). Las funciones con nombre pueden ser llamadas desde el cuerpo de la función (esto es imposible con funciones anónimas, ya que no existe un identificador al que referirse).

Con ES6 disponemos una nueva sintaxis para definir nombres de métodos abreviados cuando definimos objetos literales. Veamos la sintaxis anterior con JavaScript:

  var operacion = {
    valor1: 10,
    valor2: 7,
    sumar: function() {
      return this.valor1+this.valor2;
    },
    restar: function() {
      return this.valor1-this.valor2;
    }
  }

  document.write(operacion.sumar());
  document.write('<br>');
  document.write(operacion.restar());

La sintaxis abreviada para la definición de los dos métodos es:

  const operacion = {
    valor1: 10,
    valor2: 7,
    sumar() {
      return this.valor1+this.valor2;
    },
    restar() {
      return this.valor1-this.valor2;
    }
  }

  document.write(operacion.sumar());
  document.write('<br>');
  document.write(operacion.restar());

Como vemos disponemos el nombre del método, los parámetros y finalmente el algoritmo:

    sumar() {
      return this.valor1+this.valor2;
    },

Desaparecen los dos puntos y la palabra clave function.

Problema

Crear un objeto literal llamado cliente1 con dos propiedads 'nombre' y 'saldo'. Definir tres métodos con notación abreviada que permitan depositar, extraer e imprimir su saldo/

<!DOCTYPE html>
<html>
<head>
  <title>Ejemplo de JavaScript</title>
  <meta charset="UTF-8">
</head>
<body>

<script>
  
  const cliente1 = {
     nombre: 'Juan',
     saldo: 0,
     imprimir()
     {
       document.write(this.nombre+'<br>');
       document.write(this.saldo+'<br>');
     },
     depositar(monto) {
       this.saldo=this.saldo+monto;
     },
     extraer(monto) {
       this.saldo=this.saldo-monto;
     }                  
  };

  cliente1.imprimir();
  cliente1.depositar(1000);
  document.write('Estado luego de depositar 1000 pesos</br>');
  cliente1.imprimir();
  cliente1.extraer(200);
  document.write('Estado luego de extraer 200 pesos</br>');
  cliente1.imprimir();
  
</script>

</body>
</html>

Como podemos comprobar para cada método indicamos su nombre los parámetros y finalmente su algoritmo:

     depositar(monto) {
       this.saldo=this.saldo+monto;
     },