Дисциплины - Объектно-ориентированное программирование

ООП в JavaScript - Функции JavaScript - Вызов функции как метода

Метод – это функция, которая хранится в виде свойства объекта.

Возвращаемые значения обрабатываются точно также, как и при вызове обычной функции. Однако есть одно важное отличие. Любая функция, используемая как метод, фактически получает неявный аргумент – объект, относительно которого она была вызвана. Тело функции получает возможность ссылаться на объект с помощью ключевого слова this.

var calculator = {
  operand1:1,
  operand2:1,
  add: function(){
    this.result = this.operand1+this.operand2;
  }
}
  calculator.add();
  calculator.result; // вернет 2

В отличии от переменных, ключевое слово this не имеет областей видимости. И вложенные функции не наследуют значение this вызываемой функции. Чтобы разобраться с поведением this рассмотрим еще один пример:

var obj = {
  hello: function(){
    return “Привет ” + this.username
  },
  username: “Миша”
};
obj.hello(); // Привет Миша

Обратите внимание на то, как hello ссылается на this. Теперь мы можем скопировать ссылку на ту же самую функцию и получить другой ответ.

var obj = {
  hello: obj.username,
  username: “Маша”
};
obj.hello; // Маша

На самом деле в вызове метода вариант связывания this (получатель вызова), определяет само выражение вызова. Выражение obj.hello() ищет свойство hello объекта obj. А выражение obj2.hello ищет свойство hello объекта obj2.

Поскольку методы являются не чем иным, как функциями вызванными для конкретного объекта, сослаться на this может и обычная функция:

function hello(){
 return “Привет ” + this.username
}

Это может пригодится на предопределения функции для ее совместного использования несколькими объектами. Однако этот трюк в JavaScript редко и малоприменим.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
814301 БГУИР
814302 БГУИР
814303 БГУИР
894351 БГУИР
90421 БГУИР


Изображения Видео

1. Абстрактная фабрика https://www.youtube.com/watch?v=1mVONOCxfLg
2. Фабричный метод https://www.youtube.com/watch?v=5UqUDR6_2cY
3. Шаблон декоратор https://www.youtube.com/watch?v=Lwb9bm8yKD0
4. Dessign patterns on PHP https://github.com/domnikl/DesignPatternsPHP
5. Приёмы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
6. Приемы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
7. Ajax http://erud.by/ajax
8. Ajax http://erud.by/ajax
9. Ajax http://erud.by/ajax
10. Документация Laravel http://laravel.com
Задание к курсовой работе
Задание к курсовой работе
Вопросы к экзамену