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>

猜你喜欢

转载自www.cnblogs.com/good10000/p/10583525.html