zoukankan      html  css  js  c++  java
  • 函数方法call()和apply()

     1 <!DOCTYPE html>
     2 <html>
     3 
     4     <head>
     5         <meta charset="UTF-8">
     6         <title></title>
     7         <script type="text/javascript">
     8             function fun(a,b) {
     9                 console.log("a = "+a);
    10                 console.log("b = "+b);
    11                 //alert(this);
    12                 alert(this.name);
    13                 
    14             }
    15             
    16             var obj = {
    17                 name: "obj",
    18                 sayName:function(){
    19                     alert(this.name);
    20                 }
    21             };
    22 
    23             /*
    24              * call()和apply()
    25              *     - 这两个方法都是函数对象的方法,需要通过函数对象来调用
    26              *     - 当对函数调用call()和apply()都会调用函数执行
    27              *     - 在调用call()和apply()可以将一个对象指定为第一个参数
    28              *         此时这个对象将会成为函数执行时的this
    29              *     - call()方法可以将实参在对象之后依次传递
    30              *     - apply()方法需要将实参封装到一个数组中统一传递
    31              * 
    32              *     - this的情况:
    33              *         1.以函数形式调用时,this永远都是window
    34              *         2.以方法的形式调用时,this是调用方法的对象
    35              *         3.以构造函数的形式调用时,this是新创建的那个对象
    36              *         4.使用call和apply调用时,this是指定的那个对象
    37              */
    38             
    39             //fun.call(obj,2,3);
    40             fun.apply(obj,[2,3]);
    41 
    42             
    43 
    44             var obj2 = {
    45                 name: "obj2"
    46             };
    47 
    48             /*fun.apply();
    49             fun.call();
    50             fun();*/  //this 就是window
    51 
    52             //fun.call(obj); //this 就是obj
    53             //fun.apply(obj); //this 就是obj
    54 
    55             //fun();
    56             
    57             //obj.sayName.apply(obj2);
    58         </script>
    59     </head>
    60 
    61     <body>
    62     </body>
    63 
    64 </html>

    1.

      - this的情况:
                 *      1.以函数形式调用时,this永远都是window
                 *      2.以方法的形式调用时,this是调用方法的对象
                 *      3.以构造函数的形式调用时,this是新创建的那个对象
                 *      4.使用call和apply调用时,this是指定的那个对象
  • 相关阅读:
    update set from 语句用法
    SQL WITH AS用法
    SQL插入数据的多种方式
    本地临时表“#” 与 全局临时表 "##"
    sql常用语句
    关于mybatis转义SQL动态执行语句变慢的原因
    关于SQL中OUTER APPLY 得用法
    AspNetPager控件的简单使用
    JQuery常用的案例
    JQuery的学习笔记
  • 原文地址:https://www.cnblogs.com/fsg6/p/12769165.html
Copyright © 2011-2022 走看看