Классы в JavaScript
ВАЖНО! В JavaScript НЕТ классов в привычном для объектно- ориентированных языков виде
Сравнение C# и JavaScript
C# |
JavaScript |
class Animal |
function Animal() |
{ |
{ |
public int age = 0; |
this.age = 0; |
public string name = “Як”; |
this.name = “Як”; |
} |
} |
… |
… |
Animal a = new Animal(); |
var a = new Animal(); |
Экземпляры класса
function Animal()
{
this.age = 0; this.name = “Як”;
}
var a = new Animal();
alert(a.name + “, возраст : “ + a.age + “, ищет работу”);
//Як, возраст: 0, ищет работу a.age++;
alert(“Исполнилось ” + a.age);
// Исполнилось 1
Параметризованные
конструкторы
Конструктор – функция, следовательно, может принимать произвольное количество аргументов
function Animal(name, age)
{
this.name = name || "Без имени"; this.age = age || 0;
}
Пример
function Animal(name, age)
{
this.name = name || "Без имени"; this.age = age || 0;
} |
|
|
var a1 |
= new Animal(); |
var a2 |
= |
new Animal(“Тузик”); |
var a3 |
= |
new Animal(“Барсик”, 5); |
Методы объектов
function Animal(name, age)
{
this.name = name || "Без имени"; this.age = age || 0;
this.talk = function()
{
alert(this.name + " не говорит"); };
this.eat = function(kg)
{
alert(kg > 10 ? "Достаточно" : "Маловато будет!"); };
}
var a = new Animal("Тузик"); a.talk(); //Тузик не говорит a.eat(2); //Маловато будет a.eat(20); //Достаточно a.talk = function()
{
alert(“Я умею говорить!”);
};
a.talk(); // Я умею говорить!