Проблема с объектом javasript
В общем такой вопрос: Есть объект в котором объявлен метод. Необходимо внутри объекта объявить событие которое запустит этот метод. Через глобальную переменную не подходит. Смотреть пример:
function Test(){
var a = 8;
var b = 15;
this.method = function() {
alert(a+b);
}
//собственно вопрос
window.onresize = function(){this.method();}
}
var a = new test();
говорят можно как то перед |
Кешируйте this в локальную переменную.
|
не совсем понял типа
window.onresize = function(){a.method();}
|
Да, а строчкой ранее
var a = this;И не a, а какое-нибудь другое, не занятое имя. |
а если так?
function test(){
var a = 8;
var b = 15;
this.method = function() {
alert(a+b);
}
window.onresize = this.method;
}
var a = new test();
|
|
Цитата:
|
Цитата:
Получается мы объявим переменную глобально. НЕ хотелось. Хочется чтоб все было внутри объекта, ведь на то оно и есть ООП. |
Цитата:
в данном коде создается замыкание, при помощи ЛОКАЛЬНОЙ переменной. это, кстати очень даже правильное решение в контексте данного языка http://javascript.ru/basic/functions#oblasti-vidimosti http://javascript.ru/basic/closure |
| Часовой пояс GMT +3, время: 01:09. |