// JavaScript Document
function auction(inid)
{
var tmpObject = 
{
id : inid,
timer1 : null,//用于更新auctioninfo 及修正本地浏览器延时
timer2 : null,//用于状态倒计时

now : null,//服务器now时间戳
ainfo : null,//从服务器获取的ainfo
curr_price : 0,//竞拍的当前价
action : null,//喊价纪录

auction_join : null,//参与人
auction_join_t : 0,
auction_join_state : false, loadauctioninfo : function()
{
alert("id:" + this.id);
}
,
init : function(obj)
{
this.loadauctioninfo();
var self = this;
var tmp = '12313';

this.timer1 = setInterval('self.loadauctioninfo()', 3 * 1000);
}


};
return tmpObject;
}var aobj =  auction(1);
aobj.init(aobj);这样会提示self.loadauctioninfo 不是一个方法...
求解决方法aobj.timer1 = setInterval('aobj.loadauctioninfo()', 3 * 1000);这样的写法可以,但是我想封装到对象

解决方案 »

  1.   

    function auction(inid)
    {
    var tmpObject = 
    {
    id : inid,
    timer1 : null,//用于更新auctioninfo 及修正本地浏览器延时
    timer2 : null,//用于状态倒计时now : null,//服务器now时间戳
    ainfo : null,//从服务器获取的ainfo
    curr_price : 0,//竞拍的当前价
    action : null,//喊价纪录auction_join : null,//参与人
    auction_join_t : 0,
    auction_join_state : false,loadauctioninfo : function()
    {
    alert("id:" + this.id);
    }
    ,
    init : function(obj)
    {
    this.loadauctioninfo();
    var self = this;
    var tmp = '12313';
    var o = this
    this.timer1 = setInterval(function(){o.loadauctioninfo()}, 3 * 1000);
    }
    };
    return tmpObject;
    }var aobj = auction(1);
    aobj.init(aobj);
      

  2.   

    恩,确实能跑起来, 有一点不明白, 我上面的写法,typeof(self) 是个object,那为什么不能调用方法
      

  3.   

    this.timer1 = setInterval('self.loadauctioninfo()', 3 * 1000);this.timer1 = setInterval(self.loadauctioninfo, 3 * 1000);请查找一下setInterval的用法,第一个参数为函数与字符串的区别