Page 101 - 6108
P. 101

console.log(this.name);
                         console.log(this.age);
                     };

                      Крім безпосереднього визначення властивостей і методів в конструкторі
               також  можна  використовувати  властивість  prototype.  Кожна  функція  має
               властивість  prototype,  що  представляє  прототип  функції.  Тобто  властивість

               Person.prototype  представляє  прототип  об'єктів  Person.  І  будь-які
               властивості  і  методи,  які  будуть  визначені  в  Person.prototype,  будуть
               загальними для всіх об'єктів Person.

                     function Person(name, surname, age) {
                            this.name = name;
                            this.surname= surname;
                            this.age =age;
                     }
                     Person.prototype.toString = function() {
                            return `${this.name} ${this.surname} is ${this.age} years
                      old.`
                     };
                     Person.prototype.maxAge = 100;
                     JavaScript  використовує  прототипне  успадкування.  Це  означає,  що  в
               JavaScript  об'єкти  успадковуються  від  інших  об'єктів.  Прості  об'єкти  в
               JavaScript,  створені  з  використанням  {}  фігурних  дужок,  мають  тільки  один

               прототип: Object.prototype. Object.prototype, в свою чергу теж об'єкт, і
               все властивості і методи Object.prototype доступні для всіх об'єктів.
                     Масиви,  створені  за  допомогою  []  квадратних  дужок,  мають  кілька
               прототипів, в тому числі Object.prototype і Array.prototype. Це означає,
               що всі властивості і методи Object.prototype і Array.prototype доступні
               для  всіх  масивів.  Однойменні  властивості  і  методи,  наприклад  .valueOf  і
               .ToString,  викликаються  з  найближчого  прототипу,  в  цьому  випадку  з
               Array.prototype.
                     Об'єкти  в  JavaScript  –  динамічні  "контейнери".  Кожен  об'єкт  містить
               посилання на свій об'єкт-прототип.
                     При спробі отримати доступ до будь-якого властивості об'єкта, властивість
               спочатку  шукається  в  самому  об'єкті,  потім  в  прототипі  об'єкта,  після  чого  в
               прототипі прототипу, і так далі. Пошук ведеться до тих пір, поки не знайдено
               властивість з таким же ім'ям або не досягнуто кінець ланцюжка прототипів.
                     При  додаванні  до  об'єкту  нової  властивості,  створюється  нова  власна
               властивість (own property). Єдиним винятком з цього правила є успадковані

               властивості, що мають getter або setter.
                     let obj = {a: 1, b: 2};
                     obj.__proto__ = {b: 3, c: 4};
                     Object.prototype.d = 5;
                     obj.d; //5

                     JavaScript не має "методів" в сенсі, прийнятому в класичній моделі ООП. В
               JavaScript  будь-яка  функція  може  бути  додана  до  об'єкта  у  вигляді  його
               властивості. Успадкована функція поводиться точно так само, як будь-яка інша
   96   97   98   99   100   101   102   103   104   105   106