Анонимные функции. Определение методов объекта. онлайн урок.


Также, следует заметить, что в JS используются анонимные функции (замыкания, кложуры - closures). Они отличаются от обычных функций тем, что не имеют явного имени. Анонимные функции могут быть присвоены переменным и далее вызваны при помощи этих переменных. Например,

var testFunc = function(str) {
  alert(str);
}

// call
testFunc('Hello');


Также, анонимные функции часто могут передаваться как параметр в вызов других функций. Этот подход часто используется во фреймворке jQuery, который мы рассмотрим позднее.

Именно таким образом можно определить методы для объектов в JS. Рассмотрим пример определения объекта Student с некоторыми свойствами и методами.



В результате этого скрипта будет создан JS объект, в котором содержится 3 атрибута и 2 метода. Метод getHobby() выводит на экран текущее значение атрибута hobby. Заметим, что для этого используется специальная псевдопеременная this. Эта переменная, вызванная из контекста объекта указывает на текущий объект. Именно таким образом можно получить доступ к атрибутам объекта из контекста самого объекта. Метод setHobby() меняет значение атрибута hobby и оставляет соответствующую запись в консоли. Далее идет вызов указанных методов.

Отметим, что понимание анонимных функций очень важно, поскольку в JS они используются очень часто.

Проверьте свои знания
Для объекта apple из упражнения урока "Типы данных. Объекты" реализовать методы getWeight() (возвращает текущее значение веса) и setWeight(weight) (задает новое значение для веса). При помощи функции prompt() задать новое значение веса для объекта яблоко. Вывести новое значение в консоль.