call和apply都是固定的写法,用来调用函数本身

解决方案 »

  1.   

    实际上js方法的执行有三种形式。如下function func() {
      alert("我被调用了");
    }1、()运算符是最常用的调用方式。
       func();//弹出框显示“我被调用了”2、call
       func.call();//很奇怪吧,但的确func被调用执行了。3、apply
       func.apply();////很奇怪吧,但的确func被调用执行了。好像apply和call没有区别。有的,但那是js的其它特性了。
    1、call和apply常用来模仿对象冒充方式实现继承
    2、call和apply将某个方法放到另外一个对象的作用域上去执行。
    3、call和apply区别在于第二个参数。
      

  2.   

    补充
    call和apply实际也是js作为动态语言的特性。
      

  3.   

    推荐楼主看一下 JAVASCRIPT 高级程序设计  这本书
    里面有相关解释,很好,很权威
      

  4.   

    call()方法
    call方法的第一个参数用作this的对象,其他参数都传给函数自身。
    function changeColor( color ) {
        this.style.color = color;
    }
    changeColor.call( main, "black" ); //此时将changColor函数里的this赋为main,color参数赋为black