использование 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, время: 11:05. |