zoukankan      html  css  js  c++  java
  • javascript中call()、apply()的区别

    call()、apply()的区别:

    相同点:

    1.call()和apply()都可以用来间接调用函数,都可以显式调用所需的this。即,锚点滑动任何函数可以作为任何对象的方法来调用。

    2.两个方法都可以指定调用实参。

     区别:

    call()和apply()的基本区别:在于将参数传递给函数弹出层

    call():使用其自有的实参列表作为函数的参数;

    apply():要求以数组的形式传入参数。

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function track(o,m){
        var original =o[m];
        o[m] =function( ){
          console.log(new Date(),m);
          var results =original.apply(this,arguments);
          console.log(new Date(),m);
          return results;
        }
      }

    它们的用法可以通过给定的例子进行说明js返回顶部:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script>
    var someObject = {
      myProperty:'Foo',
      myMethod:function (prefix,posfix) {
        console.log(prefix + this.myProperty + posfix);
      }
    };
    someObject.myMethod('<','>');//Foo
     
    var someOtherObject = {
      myProperty:'Bar'
    };
    someObject.myMethod.call(someOtherObject,'<','>');//Bar
    someObject.myMethod.apply(someOtherObject,['<','>']);//Bar
    </script>
  • 相关阅读:
    大数据集群环境ssh免密码登录设置
    FreeRTOS任务创建删除
    BLE外设设计
    BLE控制器之链路层
    BLE控制器之链路层二
    BLE控制器之物理层特性
    BLE基本理论和概念
    BLE主机之ATT和GATT
    BLE主机之SM层
    BLE主机之L2CAP层
  • 原文地址:https://www.cnblogs.com/good10000/p/10583525.html
Copyright © 2011-2022 走看看