Para crear métodos estáticos, no es necesario el uso de
prototype
, basta con hacer uso de la
Dot Notation
o la
Bracket Notation
para crear métodos estáticos en la función, pues al fin y al cabo, en JS todos son objetos.
Lo malo está en que al ser estático, al llamar a la función para generar otro array, se añade al que previamente se creó. Veré si puedo adaptar esto.
Edito: Sí se pudo.
Código Javascript
:
Ver originalvar range = function(start, end, step){
range.array = range.array || [];
if (typeof start === typeof end){
range.array.push(typeof start === "string" ? start[0] : start);
step = start > end ?
!isNaN(step) && isFinite(step) && step < 0 ? step : -step || -1 :
!isNaN(step) && isFinite(step) ? step : 1;
start = typeof start === "string" ?
String.fromCharCode(start.charCodeAt(0) + step) :
start += step;
return (step > 0 && start <= end) || (step < 0 && start >= end) ?
range(start, end, step) : (function(){
var aux = range.array;
range.array = [];
return aux;
})();
}
return false;
};
console.log(range(1, 10)); //1,2,3,4,5,6,7,8,9,10
console.log(range("a", "z")); //a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z