проблема с 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, время: 04:27. |