1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 </head>
7 <body>
8 </body>
9 <script type="text/javascript">
10 // javaScript中的每一个Function对象都有一个apply()方法和一个call()方法
11
12 // call apply 注意如果call和apply的第一个参数写的是null,那么this指向的是window对象
13 var a = {
14 user:"追梦子",
15 fn:function(){
16 console.log(this.user); //追梦子
17 }
18 }
19
20 var b = a.fn;
21 b.call(a); // b函数 this指向 a
22
23 // 通过在call方法,给第一个参数添加(a)要把b添加到哪个环境中,简单来说,this就会指向那个对象。
24 // call方法除了第一个参数以外还可以添加多个参数
25
26
27 // apply方法
28
29 var a = {
30 user:"追梦子",
31 fn:function(){
32 console.log(this.user); //追梦子
33 }
34 }
35 var b = a.fn;
36 b.apply(a);
37
38 // 同样apply也可以有多个参数,但是不同的是,第二个参数必须是一个数组
39
40 var arr = [1,2,3,4,5];
41
42 console.log( Math.max.apply(null,arr) ); // 通过 apply 求最大数
43
44 Array.prototype.push.apply(arr1,arr2); // 通过 apply合并两个数组
45
46 </script>
47 </html>