原来的代码写的有点问题,改了下:function o(){
alert( "o" );
}o.prototype.set = function( value ) {
if ( document.readyState != "complete" )
{
alert( "n:" + value );
// window.setTimeout( this.set, 1000);   // 这样不能传递参数
// window.setTimeout( function(){this.set(value)}, 1000);   // 这样,这里的this不对
window.setTimeout( "this.set( '" + value + "' )", 1000);   // 这样好象不能执行
return;
}
alert( "y:" + value );
};var a = new o();
a.set( "hello" );

解决方案 »

  1.   

    o.prototype.set = function( value ) {
    if ( document.readyState != "complete" )
    {
    alert( "n:" + value );
    var self=this;
    window.setTimeout(self.set(value), 1000); 
    return;
    }
    alert( "y:" + value );
    };var a = new o();
    a.set( "hello" );
      

  2.   

    o.prototype.set = function( value ) {
    if ( document.readyState != "complete" )
    {
    alert( "n:" + value );
    var self=this;
    window.setTimeout(function(){self.set(value)}, 1000); 
    return;
    }
    alert( "y:" + value );
    };var a = new o();
    a.set( "hello" );