• javascript疑难问题---10、call和apply


    javascript疑难问题---10、call和apply

    一、总结

    一句话总结:

    call和apply方法 不仅可以执行函数(方法),更重要的是他们在执行函数(方法)的时候可以改变函数(方法)里面this的指向

    1、函数(方法)中this的指向?

    就是谁调用函数(方法),函数(方法)里面的this就指向谁

    2、函数名() 执行函数 和 call和apply 方法 执行函数的区别是什么?

    相比于函数名() 执行函数的方式,call和apply 方法 执行函数 的时候,可以改变this的指向

    3、call方法和apply方法的区别?

    call方法是指定this的指向之后参数是依次传递,apply方法是指定this的指向之后,参数放到一个数组里面统一传递

    二、call和apply

    博客对应课程的视频位置:10、call和apply
    https://www.fanrenyi.com/video/4/175

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>call和apply</title>
     6 </head>
     7 <body>
     8 <!--
     9 1、
    10 this的指向问题:
    11 就是谁调用函数(方法),函数(方法)里面的this就指向谁
    12 
    13 执行函数:函数名()
    14 call和apply 也可以执行函数
    15 
    16 
    17 
    18 2、
    19 call和apply方法 不仅可以执行函数(方法),更重要的是他们在执行函数的时候可以改变函数(方法)里面this的指向
    20 
    21 3、
    22 函数名() 执行函数 和 call和apply 方法 执行函数的区别是什么
    23 call和apply 方法 执行函数 的时候,可以改变this的指向
    24 
    25 4、
    26 call方法和apply方法的区别
    27 call方法和apply方法一样都可以执行函数和改变函数的this的指向,唯一区别在于:
    28 传递参数的时候,如果使用的是call方法,那么参数在改变的this的指向的对象后面是依次传递
    29 如果使用的是apply方法,那么参数在改变的this的指向的对象后面是要放到一个数组里面统一传递的
    30 
    31 -->
    32 <script>
    33     function readThis(a,b,c) {
    34         console.log(a);
    35         console.log(b);
    36         console.log(c);
    37         console.log(this);
    38     }
    39     //readThis();
    40     //readThis(1,2,3);
    41     //readThis.call();
    42     //readThis.apply();
    43 
    44     var zhuBaJie={
    45         name:'猪八戒',
    46         fun1:readThis
    47     };
    48     //zhuBaJie.fun1();
    49     //zhuBaJie.fun1(4,5,6);
    50     //readThis.call(zhuBaJie);
    51     //readThis.apply(zhuBaJie);
    52     //readThis.call(zhuBaJie,7,8,9);
    53     readThis.apply(zhuBaJie,[10,11,12]);
    54 
    55 </script>
    56 </body>
    57 </html>
  • 相关阅读:
    字符串的问题(strstr和strncpy 水题)
    数一数(KMP+思维)
    栗酱的数列(KMP+思维)
    D. Almost All Divisors(思维)
    E. Two Arrays and Sum of Functions(贪心)
    好位置(思维)
    Just A String(kmp)
    Dubbo简介
    lambda表达式快速创建
    分布式RPC系统框架Dubbo
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12503008.html
Copyright © 2020-2023  润新知