Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача this в функцию. (https://javascript.ru/forum/misc/31309-peredacha-v-funkciyu.html)

Jeremen 02.09.2012 22:13

Передача this в функцию.
 
В учебнике есть урок "Внутренний и внешний интерфейс",
function Menu(options) {
  var elem = options.elem;
 
  this.open = function() {
    elem.addClass('menu-open');
  };
 
  this.close = function() {
    elem.removeClass('menu-open');
  };
 
  elem.on('click', '.menu-title', function() {
    if (elem.hasClass('menu-open')) {
      close();
    } else {
      open();
    }
  });
 
}

Здесь идет обращения к методам close и open без использования перед ними объекта, но анонимные же функцию разве под this видят не window? Хотя этот пример работает но я не пойму как. Объясните пожалуйста кто понимает в чём дело

melky 02.09.2012 23:04

при вызове с "new" this меняется на текущий экземпляр.

nerv_ 03.09.2012 00:09

Jeremen, специально для тебя

Дэвид Флэнаган:
Цитата:

За оператором new должно быть указано имя функции-конструктора. Оператор создает новый пустой объект без каких-либо свойств, а затем вызывает функцию, передавая ей только что созданный объект в виде значения ключевого слова this. Функция, применяемая совместно с оператором new, называется функцией-конструктором, или просто конструктором. Главная задача конструктора заключается в инициализации вновь созданного объекта – установке всех его свойств, которые необходимо инициализировать до того, как объект сможет использоваться программой. Чтобы определить собственный конструктор, достаточно написать функцию, добавляющую новые свойства к объекту, на который ссылается ключевое слово this.


Часовой пояс GMT +3, время: 20:37.