函数方法

    call( ) 和 apply( )

      - 这两个方法都是函数对象的方法,需要通过函数对象来调用

      - 当对函数调用call( ) 和 apply( ) 都会调用函数执行

      - 在调用call( ) 和 apply( )可以将一个对象指定为第一个参数

        此时这个对象将会成为函数执行时的this

      - call( )方法可以将实参在对象之后依次传递

      - apply( )方法需要将实参封装到一个数组中统一传递

 

      - this 的情况:

        1. 以函数的形式调用时,this永远都是window

        2. 以方法的形式调用时,this是调用方法的对象

        3. 以构造函数的形式调用时,this是新创建的那个对象

        4. 使用 call 和 apply 调用时,this是指定的那个对象

        function fun( a , b){

          console . log( 'a = ' + a );

          console . log( 'b = ' + b );

        }

        var obj ={

          name: ' obj ',

          sayName:function(){

            alert( this.name );

          }

        };

        //    fun . apply( );    =  fun . call( );  =  fun( );

        fun . call(obj,2,3);

        fun . apply( obj , [ 2 , 3 ] )

 

posted @ 2019-07-31 10:41  晴天宝宝i  阅读(165)  评论(0编辑  收藏  举报