Создание собственных классов
Оператор class определяет классы. По умолчанию члены классов являются открытыми. Это означает, что любой код, который может получить доступ к классу, может получить доступ и к члену класса. Дополнительные сведения см. в разделе Модификаторы JScript.
Классы с полями
Поля определяют данные, используемые объектом; они аналогичны свойствам объектов, основанных на прототипах. Ниже приведен пример простого класса, содержащего два поля. Экземпляр класса создается с помощью оператора 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);
После выполнения этой программы выводится следующий результат:
The answer is 42
The distance is 5.2
Классы с методами
Классы могут также иметь методы, которые представляют собой функции, содержащиеся в классе. Методы определяют функциональные возможности работы с данными объекта. Можно переопределить класс myClass, созданный в предыдущем примере, таким образом, чтобы он содержал метод.
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);
После выполнения этой программы выводится следующий результат:
Hello, the answer is 42
Классы с конструкторами
Можно определить для класса конструктор. Конструктор, который представляет собой метод с именем класса, выполняется при создании класса с помощью оператора new. Для конструктора можно определить тип возвращаемых данных. В данном примере конструктор добавляется к классу 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);
После выполнения этой программы выводится следующий результат:
The distance is 8.5