Сообщение от bFree
|
Я пишу var self = this; для того, чтобы можно было вызывать методы этого класса внтури, например, jQuery.each, т.к. там this переопределяется.
|
Правильно. я о том же и говорил. У вас есть функция, объявленная внутри конструктора, которая должна использовать объект, созданный конструктором. Однако есть метод someEach задаёт общее поведение всех объектов класса, то его нужно записать в прототип, как показали ранее.
foo.prototype.someEach = function() {
var self=this;
jQuery.each(domObjects, function(i, obj) {
self.someMethod();
});
};
Вместо var self=this; можно использовать ещё другой подход - с помощью метода Function.prototype.bind.
foo.prototype.someEach = function() {
jQuery.each(domObjects, function(i, obj) {
this.someMethod();
}.bind(this));
};