首页 > 移动平台 > 详细

call、apply的区别:

时间:2019-03-14 14:40:23      阅读:168      评论:0      收藏:0      [点我收藏+]

 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>

 

call、apply的区别:

原文:https://www.cnblogs.com/dhpong/p/10500229.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!