Dudas: Empezando con JS

32 views
Skip to first unread message

Juan Manuel Costello

unread,
Apr 11, 2016, 11:29:06 AM4/11/16
to Javascript Argentina
Buenas, como andan?

Estoy arrancando con JS, tengo bastante experiencia en otros lenguajes como Java y Ruby. Quiero empezar a jugar un poco con unas librerias para la manipulacion de imagenes y el desarrollo de Video Juegos en JS y me he topado con algunas dudas.
Leyendo sobre el correcto entendimiento del prototipado:

http://aaditmshah.github.io/why-prototypal-inheritance-matters/

Me pregunto... 1) cual es la forma correcta de encarar el desarrollo? Clasico o prototypado? JS permite ambos caminos pero siento que uno deforma el lenguaje (clasico) y el otro no. Por otr lado, escuche que en JS6 se agregan las clases nativas, por lo que mas me abre la duda.

2) Por otro lado, que herramienta recomiendan para hacer test unitarios?

3) Como hacen para incluir archivos dentro de otro? se que NodeJS lo permite y que hay una libreria q se puede usar, pero pregunto por si hay algun standar utilizado.

Creo que esas son mis dudas principales. 

Un saludo, grande

Joaquin Diaz Trepat

unread,
Apr 11, 2016, 3:13:43 PM4/11/16
to javascr...@googlegroups.com
1) En mi opinion. Javascript no soporta las 2, Javascript es prototypado y permite una syntaxis clasica que ( en mi gusto ) solo obscurece lo que esta sucediendo realmente. Es un problema de gusto y depende mucho el equipo con el que estas trabajando.

2) node-unit

3) NodeJS viene con un standard para hacer import ( creo que eso es lo que estas preguntando ) en el cual expones un API de tu objeto, sin importar lo que hagas dentro del "archivo" es module.exports.


 http://stackoverflow.com/questions/5311334/what-is-the-purpose-of-node-js-module-exports-and-how-do-you-use-it


https://darrenderidder.github.io/talks/ModulePatterns/#/

La libreria con la que se hizo la presentacion de ModulePatterns se hizo con reveal.js http://lab.hakim.se/reveal-js/

Suerte.

J

--
Has recibido este mensaje porque estás suscrito al grupo "Javascript Argentina" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a javascript-ar...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a javascr...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/javascript-arg/31dffe36-b268-4a67-ac72-255b56398b8f%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Juan Manuel Costello

unread,
Apr 11, 2016, 3:21:23 PM4/11/16
to javascr...@googlegroups.com
Gracias por la respuesta. Genial por toda la data

Con respecto al punto 1, es a lo que me queria referir. Tiene una sintaxis clasica con la que simulas clases pero de fondo es todo un tema con el prototipado, ademas si no sabes como funciona "new" podes mandarte cadadas. Ahora bien, usarlo o no? Muchas librerias ya tienen definidas sus "clases" por lo que estas obligado a usar "new" con ella, claro q cuando definis tus objetos podes ir por elcamino que quieras. Cual conviene? Sabiendo que JS6 agrega class, cambia la opinion?

Demián Andrés Rodriguez

unread,
Apr 11, 2016, 3:25:17 PM4/11/16
to javascr...@googlegroups.com
Las clases de ES6 son simplemente un syntactic sugar para el prototype-based model.
Para mi es mas claro y facil que andar modificando el prototype manualmente. Ademas los métodos no son enumerables, cosa que deberías emular con Object.defineProperty()

Juan Manuel Costello

unread,
Apr 11, 2016, 3:33:37 PM4/11/16
to javascr...@googlegroups.com
Genial Demian, por ahora solo lei sobre prototipado asi que mucha idea no tengo. Como no se definen clases sino objetos, como definen algo basico para crear los objetos? Imaginemos que estoy haciendo un juego y creo "enemigos". Como es el patron a seguir aca? donde alojan el codigo del objeto? tienen algun otro objecto factory?

Joaquin Diaz Trepat

unread,
Apr 12, 2016, 3:59:20 PM4/12/16
to javascr...@googlegroups.com
Podes crear un objeto prototipo y de ahi vas copiando el prototipo cuando creas un nuevo objecto con el Object.create. Si queres usar el new usalo, yo en particular no soy un talibán, pero creo que el 

ChildObject.prototype = Object.create(Parent.prototype);
ChildObject.prototype.methodThatOnlyTheChildKnows = function(foo) {
....
}

es mas claro que decir

var ChildObject = new Parent();
ChildObject.newMethod = ....

pero es una opinion, abajo dejo algunos links hablando del tema 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create

http://www.codeproject.com/Articles/687093/Understanding-JavaScript-Object-Creation-Patterns

Reply all
Reply to author
Forward
0 new messages