JavaScript – tipo de datos personalizado – qué necesito / ¿Qué debo aprender ?

Como js es realmente flexible siempre me he preguntado si es posible crear el tipo de datos personalizados. Finalmente he decidido probar a crear uno. No estoy hablando acerca de una clase simple, algo de lque se comporta más como js nativos. Voy a crear el tipo de datos de gama  matemáticos como (2.5; 9] o (-infinito; 5). También soporta las sumas de rangos (2; 7] u (9, 27). Permitiría crear iteradores eg 2-8 con paso 0.25. Me gustaría que admitiera la sintaxis regular js ej. for…. en, o longitud calculada de propiedad basándose en la propiedad de paso.

tristemente me he dado cuenta que _iterator_ se admite sólo en ff pero todavía sería posible preparar iterador haciendo otras propiedades no enumerable.

Lo sé:-Object.create/defineProperties-getters/setters-uso estricto (para maximizar el rendimiento)-_iterator_ (en realidad no es compatible) ¿algo más que podría ser útil?

Lo haría de esta manera: crearía alguna variable oculta en el ámbito local para distribuir iteradores después de cada cambio de paso y almacenar las gamas. Ambas serían  totalmente invisibles al usuario. Todas las propiedades no serían enumerables excepto  para sumarlas con iteradores de recálculo. ¿Así se vería la gama simple [2; 7] con el paso 2:

local scope:
ranges:[[2;7]] // more arrays if it'd be sum
iterator:[2,4,6]
//Otras variables internas

not enumerable:
array: // Regresa copia
//Otras propiedades

enumerable:
0:2
1:4
2:6

es buena idea, o hay otras formas más adecuadas para hacerlo? ¿Sería posible permitir esta clase para utilizar operadores como +-?

       

Leave a Reply

Please Login to comment
  Subscribe  
Notify of