zoukankan      html  css  js  c++  java
  • call和apply

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6     </head>
     7     <body>
     8     </body>
     9     <script type="text/javascript">
    10 //        javaScript中的每一个Function对象都有一个apply()方法和一个call()方法
    11         
    12 //        call apply  注意如果call和apply的第一个参数写的是null,那么this指向的是window对象
    13         var a = {
    14             user:"追梦子",
    15             fn:function(){
    16                 console.log(this.user); //追梦子
    17             }
    18         }
    19         
    20         var b = a.fn;
    21         b.call(a);        // b函数 this指向 a
    22         
    23 //        通过在call方法,给第一个参数添加(a)要把b添加到哪个环境中,简单来说,this就会指向那个对象。
    24 //        call方法除了第一个参数以外还可以添加多个参数
    25 
    26 
    27 //        apply方法
    28 
    29         var a = {
    30             user:"追梦子",
    31             fn:function(){
    32                 console.log(this.user); //追梦子
    33             }
    34         }
    35         var b = a.fn;
    36         b.apply(a);
    37         
    38 //        同样apply也可以有多个参数,但是不同的是,第二个参数必须是一个数组
    39             
    40         var arr = [1,2,3,4,5];
    41         
    42         console.log( Math.max.apply(null,arr) );    // 通过 apply 求最大数
    43         
    44         Array.prototype.push.apply(arr1,arr2);        // 通过 apply合并两个数组
    45         
    46     </script>
    47 </html>
  • 相关阅读:
    CF1208C
    CF1208B
    CF1208A
    CF1206A
    wqy的C题
    wqy的B题
    [POI2005]SAM-Toy Cars
    Gym
    操作系统学习---进程
    C++多线程(POSIX)
  • 原文地址:https://www.cnblogs.com/jeff-zhu/p/11411445.html
Copyright © 2011-2022 走看看