No se cuantos posts tome esta seria pero queria dar a conocer como crear clases en JS para los que desconocen que es una Clase es una estructura que se aplica a un objeto, la cual consta de propiedades y metodos (funciones). Algunos ejemplos de clase es la clase Objet, String y Array. Tomemos por ejemplo las clase array:

Código :

var positions = new Array(5);
// Una propiedad de un objeto que pertenece a esa clase es length
console.log(positions.length); // Resultado 5
// Una funcion es push que permite agregar un elemento nuevo al final del array
positions.push({x:10, y:10});


Las clases son la clave para escribir codigo que sea OOP (programación orientada a objetos). Puesto que para crear una objeto este necesita una clase, aun:

// En este caso especial se creo una instancia de la Clase Object, sin usar un constructor que se uso en el ejemplo anterior new Array();

Código :

var obj = {x:10, y:10};


Son multiples las razones para crear clases, desde organizacion, evitar codigo espagetti, hacer tu codigo reusable, posibilidad de herencias, encapsulamiento.... en resumen te hara la vida y tu codigo mas facil.

Hay diversos plugins de jquery para hacer checkboxes personalizados, plugins que te haran importar jquery + una libreria, y css, quizas hasta imagenes. Pero que tan complejo es crear una clase que cree checkboxes?

Código :

CheckItem = function(data)
{
   this.holder = document.createElement('div');
   this.holder.className = 'checkItem';
   this.holder.innerHTML = data.tagName;
   this.holder.checkItem = this;
   this.holder.setAttribute('onmousedown', 'this.checkItem.toggle()');
         
   this.id = data.tagId;
         
   this.check = false;
   
   // Este codigo agregara eventos a esta clase, sera un tema mas adelante
   ADD_EVENT_DISPACTHER(this);
}
CheckItem.prototype.toggle = function()
{
   this.check = !this.check;
   this.holder.className = (this.check) ? 'checkItem checked' : 'checkItem';
   // Este codigo es parte de las funciones que se agrearon con ADD_EVENT_DISPATCHER, un tema mas adelante   
   this.dispatchEvent(Event.CHANGE);
}
CheckItem.prototype.setValue = function(value)
{
   this.check = value;
   this.holder.className = (this.check) ? 'checkItem checked' : 'checkItem';
}
CheckItem.prototype.getValue = function()
{
   return this.check;
}


Este codigo sera explicado punto por punto en post posteriores, por que hay varios tips que estan implementados en el. Solo para terminar recomiendo leer acerca de Events en ActionScript 3 por que sera un concepto, que no esta muy presente en JS, pero es indispensable para hacer encapsulamiento adecuado y sera un tema en post posteriores. A poco no es muy facil hacer un checkbox?