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>