Проблема с вызовом метода
Доброго времени суток друзья.
Проблема вот в чем: Создаю и инициализирую класс, потом пытаюсь вызвать метод этого класса из события. После вызова метода из события пишет что конструктор не инициализирован a= undifined Заранее благодарю всех. window.onload = init; function init() { var m = new MainClass('a'); var d = document.getElementById("menu_01"); d.addEventListener("mouseover", m.method1, false); } function MainClass(a) { this.a = a; } MainClass.prototype = { constructor: MainClass, method1: function() { console.log('a=', this.a); // тут проблема a= undifined } }; |
У тебя контекст вызова метода будет не объект m, а элемент d (его устанавливает браузер). http://learn.javascript.ru/this
Пиши либо m.method1.bind(m), либо function() { m.method1() } |
window.onload = init; function init() { var m = new MainClass('a'); var d = document.getElementById("menu_01"); d.addEventListener("mouseover", m.method1, false); } function MainClass(a) { MainClass.a = a; } MainClass.prototype = { constructor: MainClass, method1: function() { console.log('a=', MainClass.a); } }; |
_axl, а если появится второй экземпляр класса MainClass?
|
Цитата:
После того как метод вызван мне в этом методе необходимо обработать другое событие и передать ему метод2(закрывает меню) и там уже никак не сделать что бы все работало и вообще какой то замес выходит... Я подозреваю что у нормальных людей все вообще не так должно работать. Суть моей идеи в том что бы сделать класс для анимированного меню. |
Цитата:
|
Часовой пояс GMT +3, время: 22:55. |