此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【xiaoting924】截止到2008-06-27 14:43:14的历史汇总数据(不包括此帖):
发帖数:1                  发帖分:80                 
结贴数:0                  结贴分:0                  
未结数:1                  未结分:80                 
结贴率:0.00  %            结分率:0.00  %            
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  1.   

    http://www.never-online.net/reference/Javascript/js-call-apply-caller-callee/http://bbs.51js.com/viewthread.php?tid=67217&highlight=%2B%D4%C2%D3%B0
      

  2.   

    看完这个--《悟透JavaScript》你就明白了
    http://www.eb163.com/club/viewthread.php?tid=812&fpage=1
      

  3.   


    /*****************************************************************
     *
     *  Copyright(c) 2008, 2009 gdut.cims All Rights Reserved.  
     *
     * 文件名 jsObject.js
     * 创建时间 2008-5-21 09:10下午
     * 创建人 [email protected]
     * 说明 js 类库基类,模仿java JDK Object设计
    ******************************************************************/
    //globle variable declaration
    var g_nObjectCount = 0;
    var g_nObjectIndex = 0;function vc_jsMyObject(strClass)
    {  
    var m_strClass = null;
    var m_nHashCode = -1;

    //构造函数
    this.init= function()
    {  
    m_strClass = strClass;

    g_nObjectCount++;

    m_nHashCode = ++g_nObjectIndex;
    }.call(strClass);

    this.hashCode = function()
    {
    return m_nHashCode;
    }

    this.getClass = function()
    {
    return m_strClass;
    }

    this.close   = function()
    {
    this.vf_destructor();
    }

    //Returns a string representation of the object.
    this.vf_toString  = function()
    {
     
     return m_strClass+"@"+m_nHashCode;
    }

    //析构函数,在派生类中按需要重定义,并调用父类的析构函数
    this.vf_destructor = function()

    m_strClass = strClass;
    g_nObjectCount--; 
    }
     

    //是否同一对象的判别方法,派生类可重定义
    this.vf_equals = function(anObj){return this.hashCode()==anObj.hashCode(); }
    }
      

  4.   


    //页面上禁止同时启动多个Ajax对象,设置一个锁
    var g_vc_jsAjaxObject_boolean_SynchronizedLocked = false;//XMLHttpRequest对象,在不允许多个ajax同时运行的情况下,此对象只需有一个实例
    var g_vc_jsAjaxObject_XMLHttpRequest_httpRequest = false;//所有ajax执行需要的基本参数
    function vc_jsAjaxObject(_className,_URL,callbackFunction,_method) //extends  vc_jsMyObject

    var m_strURL  = null; //Ajax 目标页面URL
    var m_strCallbackFunction  = null; //Ajax回调方法名
    var m_strMethod = null; //采用的处理方法,GET,POST,HEAD,PUT中的一个,一般用GET var m_refXHR  = null; //对g_vc_jsAjaxObject_XMLHttpRequest_httpRequest的参考

    //构造函数
    this.__proto__ = new vc_jsMyObject(_className);
    this.init = function()

    m_strURL  = _URL;
    m_strCallbackFunction  = callbackFunction;
    m_strMethod  = _method;
    }.call(_URL,callbackFunction,_method);

    //set-get 方法组
    this.setURL  = function(_URL) { m_strURL = _URL; };
    this.setCallbackFunctionName= function(callbackFunction){ m_strCallbackFunction = callbackFunction; }; 
    this.setMethod  = function(_method) { m_strMethod = _method; };
    this.getXHR = function() { return m_refXHR; }

    //启动Ajax对象
    this.startXHR =  function()
    {
    //在外部需要确认未被锁才能创建ajax对象
    if(!g_vc_jsAjaxObject_boolean_SynchronizedLocked)
    g_vc_jsAjaxObject_boolean_SynchronizedLocked = this.makeXMLHttpRequest();
    };

    this.vf_toString  = function()
    {
     return this.__proto__.vf_toString()
       +"\nMethod=" +m_strMethod
       +"\nURL=" +m_strURL
       +"\nCallbackFunction="+m_strCallbackFunction;
    };

    //virtual 方法声明 
    //启动
    this.vf_start  = function()   {};
    //回调
    this.vf_callback= function() //派生类必须定义自己的callback方法
    {
    //这里提供一个测试方法,可以检测你要访问的文件是否正常
    if(m_refXHR.readyState == 4) {
    if(m_refXHR.status == 200)
             alert("Success!");
        else if(m_refXHR.status == 404)
            alert("["+m_strURL+"] does not exist");
        else {
            alert("Unexpected response status: " + m_refXHR.status);
        }
    }
    };

    this.makeXMLHttpRequest = function() {
    //这句话保证在页面存活期间,这个对象只被创建一次
    if(!g_vc_jsAjaxObject_XMLHttpRequest_httpRequest)
    {
    g_vc_jsAjaxObject_XMLHttpRequest_httpRequest
    = new XMLHttpRequest(); // Mozilla, Safari,...


    m_refXHR = g_vc_jsAjaxObject_XMLHttpRequest_httpRequest;

    if (!m_refXHR) {
    alert('Giving up :( Cannot get an XMLHTTP instance');
    return false;
    }

    m_refXHR.onreadystatechange = function() { eval(m_strCallbackFunction) };
    m_refXHR.open(m_strMethod, m_strURL, true);
    m_refXHR.send(null);

    return true;
    }

    this.vf_destructor = function()

    this.__proto__.vf_destructor();

    m_strURL  = null;
    m_strKeyValue  = null;
    m_strCallbackFunction  = null;
    m_strMethod = null;
    m_refXHR  = null;
    }
    }
      

  5.   

    this.__proto__  比prototype还强,但ff专用
      

  6.   

    只不过是其他预览器没有把__proto__公共出来,其实都是有这个原型的