javascript apply的使用

function r(x){
return (x);
}

function f(x){
 x[0]=x[0]+">";
 return x;
}

function o(){
var temp=r;
r=function(){
 return temp.apply(this,f(arguments));
}
}

function a(){
 o();
 alert(r("="));
}

for(var i=0;i<10;i++)
{
a();
}

请教一下这个问题。
这个执行结果为什么是
=>
=>>
=>>>
.......
=>>>>>>>>>>

Js apply方法详解 主要我是要解决一下几个问题: 1.apply和call的区别在哪里 2.什么情况下用apply,什么情况下用call 3.apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply和call的定义,然后用示例来解释这两个方法的意思和如何去用. apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性.......
答案就在这里:JavaScript -- apply的使用
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

apply主要是修改函数体内this指向用而已,并且apply需要传递参数为数组形式。你这种效果不需要apply也行,只是动态修改r函数,执行上一次的r函数体而已。
JavaScript apply与call的用法意义及区别

     function r(x) { return (x); }
    function f(x) { x[0] = x[0] + ">"; return x[0]; }
    function o() {
        var temp = r;
        r = function () { return temp(f(arguments)); }///////////////其实就是动态修改r函数,内部执行上一次的r函数代码,累加参数值
    }
    function a() {
        o();
        alert(r("="));
    }
    for (var i = 0; i < 10; i++) {
        a();
    }