Объектно-ориентированный JavaScript


JavaScript использует функции как классы для создания объектов с помощью newключевого слова. Вот пример:

function Person(firstName, lastName) {
    // construct the object using the arguments
    this.firstName = firstName;
    this.lastName = lastName;

    // a method which returns the full name
    this.fullName = function() {
        return this.firstName + " " + this.lastName;
    }
}

var myPerson = new Person("John", "Smith");
console.log(myPerson.fullName());            // outputs "John Smith"

Создание объекта с использованием newключевого слова аналогично написанию следующего кода:

var myPerson = {
    firstName : "John",
    lastName : "Smith",
    fullName : function()
    {
        return this.firstName + " " + this.lastName;
    }
}

Разница между двумя методами создания объектов заключается в том, что первый метод использует класс для определения объекта, а затем newключевое слово для его создания, а второй метод немедленно создает экземпляр объекта.

Упражнение

Создайте класс с именем Person, который принимает имя человека в виде строки и его / ее возраст в виде числа.

У класса Person должен быть вызываемый метод, describeкоторый возвращает строку со следующим синтаксисом: « name, ageлет». Так, например, если Джону 19 лет, функция describeего объекта вернет «Джон, 19 лет».