использование scope вызывавшего объекта
Приветствую всех,
есть такой код.... var test=function(){ this.ajaxSend=function(){ var req=new Request(url, this.callback); req.addVar("par1", 1); req.addVar("par2", "ыыыыыы"); req.send(); }; this.callback=function(){ console.log(this); }; }; var test1=new test(); test1.ajaxSend(); (Request это обертка над ajax) результатом в консоли будет объект "Request", а хотелось бы "test1" подскажите можно ли как то передать scope в callback не делая так "var req=new Request(url, this.callback, this);" Всем спасибо |
Вобщем пока формулировал вопрос, сам вроде разобрался, вот по этой ссылке
http://stackoverflow.com/questions/1...-success-scope нашел совет как этого избежать var test=function(){ var self=this; self.ajaxSend=function(){ var req=new Request(url, self.callback); req.addVar("par1", 1); req.addVar("par2", "ыыыыыы"); req.send(); }; self.callback=function(){ console.log(self); }; }; var test1=new test(); test1.ajaxSend(); но если кто знает другие решения если не сложно поделитесь. Всем спасибо |
Может еще так
var test=function(){ function s(p,f){ return function(){f.apply(p,arguments)} }; self.ajaxSend=function(){ var req=new Request(url, self.callback); req.addVar("par1", 1); req.addVar("par2", "ыыыыыы"); req.send(); }; self.callback= s(this,function(){console.log(self);}); }; var test1=new test(); test1.ajaxSend(); |
Часовой пояс GMT +3, время: 07:35. |