Для расширения Firefox, я пытаюсь сделать следующее:Передача метода связанного объекта в JavaScript
- Setup объект с двумя методами и поля/свойства/атрибута
- Один из методов должен иметь возможность вызвать другой метод и получить доступ к атрибуту
- Я хочу зарегистрировать этот метод как прослушиватель событий.
Прямо сейчас, у меня есть это установка как класс:
var Obj = {
field: null,
a: function() { }
b: function() {
Obj.field = 'x';
Obj.a();
}
}
window.addEventListener('mouseup', Obj.b, false);
Но мне кажется, что это должно быть возможно иметь мод не относятся к объекту «извне» (например, с помощью Obj
), но вместо этого вместо этого используется только . Тем не менее, я не могу понять, как заставить это работать правильно, простую ссылку на addEventListener()
и (желательно), только загрязняя пространство имен одним именем. Это возможно? Я попробовал поиск по сайту и нашел, например. http://ejohn.org/blog/simple-class-instantiation/, но это, похоже, не привело к чему-то, что соответствует моим критериям чистой установки.
Значение 'this' в JavaScript очень динамично. Это * вызывающий контекст *, означающий, что он обычно задается при вызове функции и отличается в зависимости от того, как * он был вызван. Вероятно, вам следует прочитать учебное пособие по различным способам настройки 'this'. Некоторые из них являются неявными, некоторые из них явными. –