Вход

Просмотр полной версии : Передача this в функцию.


Jeremen
02.09.2012, 22:13
В учебнике есть урок "Внутренний и внешний интерфейс",
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.