Хранить ссылку на this
:
function a() {
var self = this;
self.b = 1;
self.set = setInterval(function() {console.log(self.b);}, 200);
}
Анонимная функция, которую вы передаете в setInterval
, имеет доступ к любым переменным в своей области, содержащей область видимости, то есть любые локальные переменные function a()
, Магия закрытия JS сохраняет эти переменные живыми даже после завершения a()
, и каждый вызов a()
получает свое закрытие.