объект и setInterval
Ребята, подскажите как правильно оформить функцию. Чувствую что неправильно написано. хотя работает.
var poller = { url: 'get.php', time: 5000, cmd: 'polling', isStarted: false, start: function () { this.isStarted=true; setInterval(function() {poller.get({ "cmd" : poller.cmd },clb);}, this.time); function clb(res){console.log(res);} }, get: function (d, callback,ajerror) { if(!callback) callback = $.noop; if(!ajerror) ajerror = $.noop; $.ajax({type: 'GET',url: this.url, data : d, success : callback, error: ajerror }); } } Вместо poller.get и poller.cmd - там хотелось бы иметь this.get и this.cmd соответственно. Включается poller.start(); и почему не работает вариант следующий: setInterval(this.get({ "cmd" : this.cmd },clb), this.time); Или я чего то не понимаю? |
this при setInterval это window
|
в setInterval - да. в Callback - это ajax.
Но почему тогда this.time - тогда работает? ведь это же setInterval |
в jquery усть функция прокси
setInterval( $.proxy(this.get({ "cmd" : this.cmd },clb), this), this.time) в ajax есть параметр context $.ajax({type: 'GET',url: this.url, data : d, success : callback, error: ajerror, context: this }); |
Часовой пояс GMT +3, время: 08:37. |