http://www.cnblogs.com/delin/archive/2010/06/17/1759695.html

解决方案 »

  1.   

    js中一共有4种调用模式:方法调用模式、函数调用模式、构造器调用模式、apply调用模式。这些模式在如何初始化关键参数this上存在差异。
    js是函数式的面向对象编程语言,函数可以拥有方法,apply就是函数的一个基本方法。使用这个方法可以调用函数,并修改函数体内this的值。apply方法包括两个参数:第一个参数设置绑定给this的值,第二个是传递给函数的参数数组,比如:var array = [5,4];
    var add = function(){
      var i, sum = 0;
      for(i = 0; i < arguments.length; i++){
        sum += arguments[i];
      }
      return sum;
    }
    var sum = add.apply({}, array);
      

  2.   

    apply 平常用的特别多,必须掌握。
    补充#2楼,,传入apply() 方法的第二个参数是参数数组,并且该数组里的每一项都会作为 add() 函数的参数。
      

  3.   

    apply  和  call  拿来一起比较。
      

  4.   


    apply的作用就是修改this?把一些对象方法,用到另一些对象上?
      

  5.   

    你都在什么情况下使用apply?能给点代码片段么?
      

  6.   

    你都在什么情况下使用apply?能给点代码片段么?
    function proxy(obj,fun)
    {
    return function(){
    return fun.apply(obj,arguments);
    };
    }var c = {s:0};function add(m)
    {
    return this.s+=m;
    }var d = proxy(c,add);
    alert(d(3));
    alert(d(7));
    alert(d(5));
      

  7.   

    你都在什么情况下使用apply?能给点代码片段么?
    function proxy(obj,fun)
    {
    return function(){
    return fun.apply(obj,arguments);
    };
    }var c = {s:0};function add(m)
    {
    return this.s+=m;
    }var d = proxy(c,add);
    alert(d(3));
    alert(d(7));
    alert(d(5));apply就是把this指向obj么? 你这个add貌似不能独立调用啊...
      

  8.   

    apply 与call可以用来实现javaScript中的继承操作。