Our Blog

CoffeeScript: Usando objetos

Como hemos visto en el post anterior, CoffeeScript nos brinda la posibilidad de reducir la cantidad de código que escribimos a nivel JavaScript permitiéndonos luego generar el correspondiente código luego de compilarlo. Ahora bien dentro del mundo de JavaScript existe el concepto de objetos, el cual para las personas que vienen programando en lenguajes de programación como Java, Ruby o PHP resulta un poco molesta la sintaxis. CoffeeScript plantea una forma de crear los objetos similar en parte a los lenguajes antes mencionados.

Introducción

Los objetos pueden ser vistos de dos formas: como listas de claves con sus respectivos valores o como un conjunto de funciones y atributos que engloban una determinada lógica.

En los siguientes apartados veremos cada uno de estos tipos de objetos con su respectiva sintaxis dentro de lo que es CoffeeScript.

Objetos simples (clave valor)

Este tipo de objetos se asignan a una variable para luego poder ser accedidos de manera mas simple y solo contienen atributos con sus correspondientes valores.

CoffeeScript JavaScript

coffee =

name: ‘French’

strength: 1

var coffee;

coffee = {

name: ‘French’,

strength: 1

}

;

Para poder acceder a los atributos de este tipo de objeto la manera es variable.atributo o como en el ejemplo que se encuentra en la parte superior coffee.name para acceder al nombre del cafe. Hay que tener en cuenta que dentro de un objeto pueden haber atributos u objetos.

Objetos complejos (clave valor)

Los objetos de este tipo son los mas parecidos a lo que para algunos lenguajes de programación orientado a objetos se conoce como clases, las cuales contienen atributos y funciones relacionadas de alguna manera con el nombre de la misma.

Este tipo de objetos tienen la posibilidad de colocarle un constructor para realizar una determinada funcionalidad o asignar determinados valores a los atributos que posee el objeto una vez que se crea una instancia de la misma.

Veamos ahora algunos ejemplos de este tipo de objetos:

  • Objeto con constructor
CoffeeScript JavaScript

class Coffee

constructor: (name, strength) ->

@name = name

@strength = strength

coffee = new Coffee(‘Juan’, 1)

var Coffee, coffee;

Coffee = (function() {

function Coffee(name, strength) {

this.name = name;

this.strength = strength;

}

return Coffee;

})();

coffee = new Coffee(‘Juan’, 1);

La ultima linea de código es la que se encarga de generarnos una instancia particular del objeto Coffee y pasarle los valores que tendrán sus dos atributos.

  • Objeto con constructor y valores por default

CoffeeScript nos permite asignarle valores por default a cada uno de los atributos en caso de que alguno de ellos no sean informados.

CoffeeScript JavaScript

class Coffee

constructor: (name, strength= 1) ->

@name = name

@strength = strength

coffee = new Coffee(‘Juan’)

var Coffee, coffee;

Coffee = (function() {

function Coffee(name, strength) {

if (strength == null) {

strength = 1;

}

this.name = name;

this.strength = strength;

}

return Coffee;

})();

coffee = new Coffee(‘Juan’);

  • Agregar funciones

Los objetos complejos nos permiten agregarle funciones que son similares a las mencionadas en post previos (pueden recibir parámetros, tener valores por default, etc), la única diferencia radica en que están contenidas dentro de un objeto y pueden acceder a los atributos de la misma.

CoffeeScript JavaScript

class Coffee

constructor: (name, strength= 1) ->

@name = name

@strength = strength

pour: (amount) ->

“#{super(amount)}, but it sucks”

coffee = new Coffee(‘Juan’)

var Coffee, coffee;

Coffee = (function() {

function Coffee(name, strength) {

if (strength == null) {

strength = 1;

}

this.name = name;

this.strength = strength;

}

Coffee.prototype.pour = function(amount) {

return “” + (Coffee.__super__.pour.call(this, amount)) + “, but it sucks”;

};

return Coffee;

})();

coffee = new Coffee(‘Juan’);

 

  •  Herencia

La herencia como su nombre lo indica es heredar las funcionalidades y atributos de otro objeto para agregarle nueva o modificar la que existe en la del padre.

La forma de hacerlo es por medio de agregarle la palabra extends luego de la declaración del nombre del objeto y el nombre del objeto padre, en el siguiente ejemplo se ha mostrado solo el código de CoffeeScript ya que el generado por JavaScript es mas extenso.

CoffeeScript
class Coffee

constructor: (name, strength= 1) ->

@name = name

@strength = strength

class MaxgoodHouse extends Coffee

constructor: (@name, @strength=0) ->

@brand = “Maxgood House”

coffee = new MaxgoodHouse(‘Juan’)

Conclusion

Como se vio por medio de los ejemplos brindados en este post, el uso de objetos en CoffeeScript no presenta grandes dificultades a la hora crear objetos como así también nos facilita la utilización de los mismos.

No comments
TeraswapCoffeeScript: Usando objetos

Related Posts