Erlo

javascript中call()、apply()的区别

2019-03-23 14:02:51 发布   412 浏览  
页面报错/反馈
收藏 点赞

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>

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认