javascript疑难问题---10、call和apply

一、总结

一句话总结:

call和apply方法 不仅可以执行函数(方法),更重要的是他们在执行函数(方法)的时候可以改变函数(方法)里面this的指向

 

 

1、函数(方法)中this的指向?

就是谁调用函数(方法),函数(方法)里面的this就指向谁

 

2、函数名() 执行函数 和 call和apply 方法 执行函数的区别是什么?

相比于函数名() 执行函数的方式,call和apply 方法 执行函数 的时候,可以改变this的指向

 

 

3、call方法和apply方法的区别?

call方法是指定this的指向之后参数是依次传递,apply方法是指定this的指向之后,参数放到一个数组里面统一传递

 

 

 

 

二、call和apply

​​

 

javascript疑难问题---10、call和apply_javascript疑难问题

 



1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>call和apply</title>
6 </head>
7 <body>
8 <!--
9 1、
10 this的指向问题:
11 就是谁调用函数(方法),函数(方法)里面的this就指向谁
12
13 执行函数:函数名()
14 call和apply 也可以执行函数
15
16
17
18 2、
19 call和apply方法 不仅可以执行函数(方法),更重要的是他们在执行函数的时候可以改变函数(方法)里面this的指向
20
21 3、
22 函数名() 执行函数 和 call和apply 方法 执行函数的区别是什么
23 call和apply 方法 执行函数 的时候,可以改变this的指向
24
25 4、
26 call方法和apply方法的区别
27 call方法和apply方法一样都可以执行函数和改变函数的this的指向,唯一区别在于:
28 传递参数的时候,如果使用的是call方法,那么参数在改变的this的指向的对象后面是依次传递
29 如果使用的是apply方法,那么参数在改变的this的指向的对象后面是要放到一个数组里面统一传递的
30
31 -->
32 <script>
33 function readThis(a,b,c) {
34 console.log(a);
35 console.log(b);
36 console.log(c);
37 console.log(this);
38 }
39 //readThis();
40 //readThis(1,2,3);
41 //readThis.call();
42 //readThis.apply();
43
44 var zhuBaJie={
45 name:'猪八戒',
46 fun1:readThis
47 };
48 //zhuBaJie.fun1();
49 //zhuBaJie.fun1(4,5,6);
50 //readThis.call(zhuBaJie);
51 //readThis.apply(zhuBaJie);
52 //readThis.call(zhuBaJie,7,8,9);
53 readThis.apply(zhuBaJie,[10,11,12]);
54
55 </script>
56 </body>
57 </html>


人工智能群:939687837