function f1()
{
    alert("1");
}
function f2()
{
    alert("2");
}
var f3 = f1.call;f3.call(f2);
求运行机制?

解决方案 »

  1.   

    function f1()
    {
        alert("1");
    }
    function f2()
    {
        alert("2");
    }
    var f3 = f1.call;
    alert(f1);
    alert(f2);
    alert(f3);
    f3.call(f2);把每个object打出来看了看
    f1,f2就是函数对象本身,f3也是个函数对象,其代码是
    function call() {
        [native code]
    }
    call本身是把当前函数对象的代码作用于另一个函数对象,
    即f3.call(f2)就是把f3的代码作用于f2
    而f3的代码就是调用本地代码,即调用传入函数对象自己的代码,在这里也就是f2自己的代码
    所以,就执行了alert("2")
      

  2.   


    这里有用法介绍
    http://xiaofeizm55333.javaeye.com/blog/80913