作者uruz7 (uruz7)
看板Ajax
标题Re: [问题] 使用class
时间Thu Jun 26 19:40:03 2008
var IDclass=Class.create();
IDclass.prototype={
initialize:function(ID){
this.ID=ID;
...
...
},
getAlbum:function(){
var url = "
http://www.wretch.cc/album/"+this.ID;
var qstr="";
//this.test();
var ajax=new Ajax.Request(url,
{
method: 'get',
parameters: qstr,
onSuccess: function(reqObj)
{
alert('ALBUM success');
tempResponse=reqObj.responseText;
var hideNode=document.getElementById("tempHtml");
hideNode.innerHTML=tempResponse;
this.test();
getPhotoUrl();
},
onFailure: function(reqObj)
{
alert('fail');
addAlbum("XXX","XXX");
}
});
},
test:function(){
alert("213");
},
};
就是this.test();没办法执行
直接写test();也不行
但是如果我没有放在Ajax.Request里面可以用this.test()呼叫到
也就是例如在黄色字的地方
我想问是不是因为我在那当下是在另一个物件里面所以用this会没办法看到
如果这个假设是成立的不知道我要怎麽呼叫到IDclass里面的test:function()
如果其实并不是这麽一回事的话
那我该怎办~~~~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.235.115
※ 编辑: uruz7 来自: 140.113.235.115 (06/26 19:41)
※ 编辑: uruz7 来自: 140.113.235.115 (06/26 19:42)
※ 编辑: uruz7 来自: 140.113.235.115 (06/26 19:42)
※ 编辑: uruz7 来自: 140.113.235.115 (06/26 19:43)
※ 编辑: uruz7 来自: 140.113.235.115 (06/26 19:45)
※ 编辑: uruz7 来自: 140.113.235.115 (06/26 19:46)
1F:推 fillano:你怎麽用IDClass的?var a=new IDClass()吗? 06/26 19:58
2F:→ uruz7:恩恩 是 06/26 20:30
3F:→ chph:this 指向的是不同物件, 可在黄字处先用另一变数存放 06/26 21:49
4F:→ chph:蓝色字改呼叫另一变数的test(), 试试 06/26 21:50
5F:→ uruz7:最後是放弃了原本的方式,写在Ajax.Request()中好像真的不行 06/27 13:01
6F:→ uruz7:最後是改写成原本的xmlHttpRequest就没这个问题了 06/27 13:02
7F:推 TonyQ:是你不会用... chph的推文是正解 06/27 14:15
8F:→ TonyQ:this这个关键字可以列为js最常混淆的变数之一了 06/27 14:15
9F:→ uruz7:被你说对了~~我真的不会用 所以才会土法炼钢 06/27 19:10
10F:→ uruz7:不知道能不能够回一篇完整的说明 虽然我暂时解决了燃眉之急 06/27 19:10
11F:→ uruz7:但是如果能多学一点总是好的 06/27 19:11
12F:→ TonyQ:主要是要自己生一个example有点累...总之每次产生物件都是 06/27 20:44
13F:→ TonyQ:一个新的实体, 你new Ajax() 它就是一个自己的实体 06/27 20:45
14F:→ TonyQ:你this指到的其实是他 而不是IDClass本尊.. 06/27 20:45
15F:→ TonyQ:chph讲的应该算是一个值得尝试的解决方案了...~_~ 06/27 20:47
16F:→ uruz7:恩恩 好像有点董了 先试试 感谢TonyQ!!!!! 06/28 19:24
17F:→ uruz7:阿 还有chph 06/28 19:25