此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【xiaoting924】截止到2008-06-27 14:35:26的历史汇总数据(不包括此帖):
发帖数:0                  发帖分:0                  
结贴数:0                  结贴分:0                  
未结数:0                  未结分:0                  
结贴率:-------------------结分率:-------------------
如何结贴请参考这里: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.   


    <script type="text/javascript">
    if ("function" != typeof Function.prototype.apply) {
    //如果浏览器版本过低不支持apply和call的话 - -!
        Function.prototype.apply = function (obj, argu) {
        //apply函数兼容
            var a = [], f = null, i = 0;
            if (argu && argu.constructor === Array) for (; i < argu.length ; i ++) a[i] = "argu[" + i + "]";
            //把这个被apply的函数追到自己的原型对象中,这样就调用一下这个函数,就可以实现继承里面所有的引用。
            if (obj) obj.constructor.prototype.___caller = this;
            f = eval((obj ? "obj.___caller" : "this") + "(" + a.join(",") + ");");
            //用完了,就删除掉它
            if (obj) delete obj.constructor.prototype.___caller;
            return f;
        };
        Function.prototype.call = function (obj) {
        //call函数兼容
            for (var a = [], i = 1 ; i < arguments.length ; i ++) a[i - 1] = arguments[i];
            return this.apply(obj, a);
        };
    }
    </script>
    原理
      

  3.   

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