zoukankan      html  css  js  c++  java
  • call、apply的作用和区别是什么?

     call()、apply()的区别:

    相同点:

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

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

     

    区别:

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

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

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

       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;
            }
        }    

     

    它们的用法可以通过给定的例子进行说明:

    <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>
  • 相关阅读:
    每日日报
    HTML相关
    60-Shiro功能扩展(记住我)
    60--Shiro安全框架
    服务器项目部署简单操作
    61--DB项目--修改密码模块设计
    59-SpringAOP --Cache操作(注解)
    58-Spring AOP 异步操作
    58-Spring-AOP事务管理
    Terminal 执行 java 命令
  • 原文地址:https://www.cnblogs.com/dhpong/p/10500229.html
Copyright © 2011-2022 走看看