Допустим, существует класс:
function MyClass {
self = this; // Создаст глобальный объект self
$(document).ready(this.g);
}
MyClass.prototype.g = function(event) {
// здесь this - это объект вызывавший событие.
// обращаемся к полям класса через self
}
Но self
- это глобальный объект, если мы таким же образом определим другой класс, с таким же self
, то он собъет self
текущего.
Я вижу решение только в выдаче каждому объекту своего id и обращению к ним через глобальный массив в функциях подобным g
.
Существуют другие способы обойти это?
$(document).ready((e) => this.g(e));
или
this.bound_g = this.g.bind(this);
$(document).ready(this.bound_g);
тогда
MyClass.prototype.g = function(event) {
// здесь this - это объект MyClass
}
Другой вариант:
var self = this;
$(document).ready(function(event) {
self.g(this, event);
});
MyClass.prototype.g = function(element, event) {
// здесь this - это объект MyClass
}
$(document).ready(this.g);
$(document).ready(this.g.bind(this));
В моём классе используются как unbind, так и removeEventListener, так не получится, к сожалению.
constructor() {
this.g = this.g.bind(this);
}
doSmth() {
$(document).ready(this.g);
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть слайдер с счетчиком, при включении нижнего прогрессбара перестает работать счетчикonTranslated : counter, onTranslated : moved