<script Language="JavaScript">
функциякруг (радиус)
{//Эта функция определяет сам класс. Следующий r — это переменная экземпляра, определенная и инициализированная конструктором.
this.r=радиус;
}
//Этот атрибут является переменной класса, которая является атрибутом конструктора
круг.PI=3,14159;
функциональная область()
{//Это конечно же формула расчета площади круга.
вернуть this.PI * this.r * this.r;
}
// Ниже мы делаем его методом экземпляра, присваивая функцию круговому объекту конструктора.
//Чтобы быть совместимыми с Navigator3, мы должны создать и удалить объект до того, как будет сгенерирован объект-прототип
новыйкруг (0);
круг.prototype.area=площадь;
//Ниже приведена еще одна функция, которая сравнивает два параметра и возвращает больший из них
functioncircel_max(a,b)
{
если (ар > бр)
вернуть а;
еще
вернуть б;
}
//Поскольку эта функция сравнивает два объекта, нет смысла рассматривать ее как операцию над одним методом экземпляра Circel.
//Но мы не хотим становиться независимой функцией, поэтому назначаем ей конструктор и делаем методом класса.
circel.max=circel_max;
//Следующий код использует различные поля круга
var c=new circel(1.0); //Создаем экземпляр класса circel
cr=2.2; //Устанавливаем переменную r экземпляра
var a=c.area(); //Вызов метода области экземпляра
var x=Math.exp(circel.PI); //Используем переменную PI в наших собственных вычислениях
var d=new circel(1.2); //Создаем еще один экземпляр circel
var biger=circel.max(c,d);//Использовать метод класса circel.max
</скрипт>
Файл JScript.js
/**//* Файл JScript Комплексное число — это сумма мнимого и мнимого чисел. Мнимое число i — это квадратный корень из -1.
*/
/**//*Первым шагом в определении класса является определение конструктора класса. Квалифицированный конструктор инициализирует все функции экземпляра объекта. Эти атрибуты являются основными «переменными состояния», которые позволяют использовать каждый экземпляр. класс для взаимодействия друг с другом. Это не одно и то же.
*/
функция JScript(real,img)
{
this.x=real;//реальная часть
this.y=img;//Мнимая часть
}
/**//*Вторым шагом в определении класса функции является определение его метода экземпляра (или других атрибутов) в объекте-прототипе конструктора.
Любые свойства, определенные этим объектом, будут унаследованы всеми экземплярами этого класса. Обратите внимание, что методы экземпляра неявно работают с этим ключевым словом. Многие методы не требуют других параметров.
*/
//Возвращает размер комплексного числа, который определяется как расстояние от начала координат (0,0) до комплексной плоскости
JScript.prototype.magnitude=функция()
{
return Math.sqrt(this.x * this.x + this.y * this.y);
};
//Возвращаем противоположное комплексному числу
JScript.prototype.negative=функция()
{
вернуть новый JScript(-this.x,-this.y);
};
// Эффективное преобразование объекта JScript в строку. Это будет функция, вызываемая при использовании объекта JScript в качестве строки.
JScript.prototype.toString=функция()
{
return "{"+ this.x +","+ this.y +"}";
};
//Возвращает действительную часть комплексного числа. Эта функция вызывается при обработке объекта JScript как примитивного значения.
JScript.prototype.valueOf=function() {return this.x;};
/**//*Третий шаг в определении класса — определение методов класса.
Константы и другие переменные класса являются свойствами самого конструктора функции (а не свойствами объекта-прототипа конструктора).
Обратите внимание, что статические методы не используют ключевое слово this, поскольку они работают только с параметрами.
*/
//Вычисляем сумму двух комплексных чисел и возвращаем результат
JScript.add()=функция(a,b)
{
вернуть новый JScript(ax + bx,ay + by);
};
//Вычитаем одно комплексное число из другого комплексного числа и возвращаем результат
JScript.subtract()=функция(a,b)
{
вернуть новый JScript(ax - bx, ay - by);
};
//Вычисляем произведение двух комплексных чисел и возвращаем результат
JScript.multiply()=функция(a,b)
{
return new JScript(ax * bx - ay * by, ax * bx + xy * by);
};
/**//* Ниже приведены некоторые полезные предопределенные числа во множественном числе. Они определены как переменные класса, поэтому их можно использовать в качестве констант (обратите внимание, что на самом деле они не предназначены только для чтения).
*/
JScript.zero=new JScript(0,0);
JScript.one=новый JScript(1.0);
JScript.i=новый JScript(0.1);