topcreate

Argumentos

String: nombre de la clase, debe ser el mismo que la variable donde almacenamos la clase.
Function: función de "clase".
String[optional]: "final", declara la clase como final.

Crea y devuelve una clase.

function ClassA(){
 	this.value = "default";
	this.getValue = function(){
		return this.value;
	};
 	this.$$constructor = function(v){
		 this.value = v || this.value;
	};
};

var ClassA = Class.create("ClassA", ClassA);
var instanceA = new ClassA("one");
alert(instanceA.getValue());// "one"
topextend

Argumentos

String: nombre de la clase, debe ser el mismo que la variable donde almacenamos la clase.
Class: clase padre o superclase.
Function: función de "clase".
String[optional]: "final", declara la clase como final.

Crea y devuelve una clase que hereda los métodos y atributos de otra clase.

function ClassA(){
 	this.value = "default";
	this.getValue = function(){
		return this.value;
	};
 	this.$$constructor = function(v){
		 this.value = v || this.value;
	};
 };
 var ClassA = Class.create("ClassA", ClassA);
 function ClassB(){
 	this.$$constructor = function(v){
		 this.value = v || this.value;
	};
 };
 var ClassB = Class.extend("ClassB",ClassA,ClassB);
 var instanceB = new ClassB("Two");
 alert(instanceB.getValue());// return "Two";
topclone

Argumentos

String: nombre de la clase, debe ser el mismo que la variable donde almacenamos la clase.
Class: clase que queremos clonar.
String[optional]:"final", declara la clase como final.

Clona una clase.

function ClassA(){
 	this.value = "default";
	this.getValue = function(){
		return  this.value;
	};
 	this.$$constructor = function(v){
		 this.value = v || this.value;
	};
 };
 var ClassA = Class.create("ClassA", ClassA);
 var cloneClass = Class.clone("cloneClass",ClassA);
 var instance = new cloneClass("clone");
 alert(instance.getValue()); // return  "clone"
topinstanceOf

Argumentos

Instance: instancia.
Class: clase.

Devuelve un valor boolean, true si es un instancia de la clase o de las superclases de ésta.

function ClassA(){
 	this.value = "default";
	this.getValue = function(){
		return  this.value;
	};
 	this.$$constructor = function(v){
		 this.value = v || this.value;
	};
 };
 var ClassA = Class.create("ClassA", ClassA);
 var cloneClass = Class.clone("cloneClass",ClassA);
 var instance = new cloneClass("clone");
 alert(Class.instanceOf(instance,cloneClass)); // true
 alert(Class.instanceOf(instance,ClassA)); // false
 
topgetName

Argumentos

Class|Instante: clase o instancia.

Devuelve el nombre de la clase.

Class.getName(instanceB);// return "ClassB";
topgetIndex

Argumentos

Class|Instante: clase o instancia.

Devuelve un valor numérico con el nivel de la clase dentro de la jerarquía de clases.

Class.getIndex(ClassB) // return 1
topgetSuperClasses

Argumentos

Class|Instance: clase o instancia.

Devuelve un array con los nombres de las superclases de una instancia o clase.

function ClassA(){
 	this.value = "default";
	this.getValue = function(){
		return this.value;
	};
 	this.$$constructor = function(v){
		 this.value = v || this.value;
	};
 };
 var ClassA = Class.create("ClassA", ClassA);
 
 function ClassB(){
 	this.$$constructor = function(v){
		 this.value = v || this.value;
	};
 };
 var ClassB = Class.extend("ClassB",ClassA,ClassB);
 
 var indexB = Class.getIndex(ClassB);
 
 var ClassC = Class.extend("ClassC",ClassB,function(){
  	this.$$constructor = this.$$super[indexB].$$constructor;
 });
 
 var instanceC = new ClassC("Three");
 alert(Class.getSuperClasses(instanceC)); // ["ClassB","ClassA"]
 alert(Class.getSuperClasses(ClassC)); // ["ClassB","ClassA"]
topgetDeclaredClasses

Argumentos

Class|Instance:[optional] clase o instancia.

Devuelve un array con los nombres de todas las clases declaradas. Si se envía como argumento una clase o instancia devuelve un array con las clases anidadas.
Si un nombre se repite significa que esa clase ha sido sobrescrita.

function ClassA(){
 	this.value = "default";
	this.getValue = function(){
		return this.value;
	};
 	this.$$constructor = function(v){
		 this.value = v || this.value;
	};
 };
 var ClassA = Class.create("ClassA", ClassA);
 function ClassB(){
 	this.$$constructor = this.$$super[0].$$constructor;
 };
 var ClassB = Class.extend("ClassB",ClassA,ClassB);
 var indexB = Class.getIndex(ClassB);
 var ClassC = Class.extend("ClassC",ClassB,function(){
  	this.$$constructor = this.$$super[indexB].$$constructor;
 });

 alert(Class.getDeclaredClasses()); // ["ClassA","ClassB","ClassC"]
topgetImplementedClasses

Argumentos

Class|Instance: clase o instancia.

Devuelve un array con los nombres de las clases u objetos implementadas mediante $$implement.

var ClassA = Class.create("ClassA",function(){
	this.A = "A";
});
var JSON = {
	$$className:"JSON",
	getValue:function(){
		return "value:JSON";
	}
};

var ClassM = Class.create("ClassA",function(){
	this.$$implement(ClassA,JSON);
	this.$$constructor = function(){
	
	};
});
 
alert(Class.getImplementedClasses(ClassM))// ClassA, JSON
topexists

Argumentos

String: nombre de la clase.

Devuelve un valor boolean , true si existe false en caso contrario.

Class.exists("classX")// return false
topfinalize

Argumentos

Function: llama al método $$finalize, después elimina todos los métodos y atributos, menos $$finalized, cuyo valor será true.

Devuelve null.

function ClassA(){
	this.value = "";
	this.$$DEFINE_STATIC = function(){
		this.$$static.instances = [];
		this.$$static.removeInstance = function(inst){
			var instances = this.$$static.instances;
			for(var ctr = 0; ctr < instances.length; ctr++){
				if(instances[ctr] == inst){
					instances.splice(ctr,1);
					break
				}
			}
		};
	};
	this.$$constructor = function(v){
		this.$$static.instances.push(this);
		this.value = v;
	};
	this.$$finalize = function(){
		this.$$static.removeInstance(this);
	};
};


var ClassA = Class.create("ClassA",ClassA);
var inst1 = new ClassA("instance 1");
alert(ClassA.$$static.instances.length)// 1
inst1 = Class.finalize(inst1);
alert(ClassA.$$static.instances.length)// 0