Crear clases propias
Actualización: noviembre 2007
La instrucción class define clases. De manera predeterminada, se puede tener acceso público a los miembros de las clases, lo que quiere decir que cualquier código que pueda tener acceso a la clase puede tenerlo también al miembro de la clase. Para obtener más información, vea Modificadores de JScript.
Clases con campos
Los campos definen los datos que utiliza un objeto y son similares a las propiedades de los objetos basados en prototipos. A continuación figura un ejemplo de una clase simple con dos campos. Se crea una instancia de la clase con el operador new:
class myClass {
const answer : int = 42; // Constant field.
var distance : double; // Variable field.
}
var c : myClass = new myClass;
c.distance = 5.2;
print("The answer is " + c.answer);
print("The distance is " + c.distance);
El resultado de este programa es:
The answer is 42
The distance is 5.2
Clases con métodos
Las clases también pueden contener métodos, que son funciones que contiene la clase. Los métodos definen la funcionalidad para manipular los datos de un objeto. La clase myClass definida más arriba se puede volver a definir para que incluya un método.
class myClass {
const answer : int = 42; // Constant field.
var distance : double; // Variable field.
function sayHello() :String { // Method.
return "Hello";
}
}
var c : myClass = new myClass;
c.distance = 5.2;
print(c.sayHello() + ", the answer is " + c.answer);
El resultado de este programa es:
Hello, the answer is 42
Clases con constructores
Se puede definir un constructor para una clase. Un constructor, que es un método con el mismo nombre que la clase, se ejecuta cuando se crea una clase con el operador new. Se puede no especificar un tipo de valor devuelto para los constructores. En este ejemplo, se agrega un constructor a la clase myClass.
class myClass {
const answer : int = 42; // Constant field.
var distance : double; // Variable field.
function sayHello() :String { // Method.
return "Hello";
}
// This is the constructor.
function myClass(distance : double) {
this.distance = distance;
}
}
var c : myClass = new myClass(8.5);
print("The distance is " + c.distance);
El resultado de este programa es:
The distance is 8.5