проблема с this
Здравстуйте, суть проблемы в следующем:
есть такой код:
var tools = {
index: 1,
nextOne: document.getElementById('next')
},
f = (function() {
function F(tools) {
this.index = 1;
};
F.prototype.someMethod = function() {
tools.nextOne.onclick = function() {
alert(this.index);
};
};
return new F();
})();
f.someMethod.apply(f, []); // undefined
не могу понять почему при вызове метода someMethod с явно указанным контекстом все равно выводится undefined ?? |
this в данном случае указывает на объект до точки, если хочешь получить 1, то делай ссылку на объект типа var self = this, вида
F.prototype.someMethod = function() {
var self = this
и внутри onclick вызывай alert(self.index); |
Цитата:
var self = this;Повторение кода получается =) |
то ты не можешь понять почему , а теперь пишешь "так это понятно" , определись уже; если ты хочешь чтоб твой this в любом участке класса указывал на функцию конструктор, создай метод в объекте F getSelf = function () { return this; } и вызывай его когда нужен корректный this.
|
Цитата:
Цитата:
Здесь без магии не обойтись походу |
F.prototype.someMethod = function() {
tools.nextOne.onclick = function() {
alert(this.index);
}.bind(this);
};
|
| Часовой пояс GMT +3, время: 16:37. |