call、apply的区别:
程序员文章站
2022-05-04 14:21:53
call()、apply()的区别: 相同点: 1.call()和apply()都可以用来间接调用函数,都可以显式调用所需的this。即,任何函数可以作为任何对象的方法来调用。 2.两个方法都可以指定调用实参。 区别: call()和apply()的基本区别:在于将参数传递给函数。 call():使 ......
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>
推荐阅读
-
电钢琴和钢琴的区别,看了就知道该怎么选择了
-
命名管道和匿名管道的区别(超详解析2者不同处)
-
详解Python中 __get__和__getattr__和__getattribute__的区别
-
jdk和jre的关系和区别(jdk和jre有什么不同)
-
linkedlist和arraylist的区别是什么(java的四种引用关系从强到弱)
-
Android中gravity与layout_gravity的使用区别分析
-
基于Android CALL && SendMes Test的相关介绍
-
php中数字0和空值的区别分析
-
Python跳出循环语句continue与break的区别
-
PHP一些有意思的小区别