21.修改this指向.html 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. function fn1(x,y) {
  11. var sum = x * y;
  12. console.log(sum,'sum')
  13. console.log(this,'this')
  14. console.log(this.name)
  15. }
  16. var obj = {
  17. name:"LiLi"
  18. }
  19. fn1(2,3)
  20. // fn1.call(obj,2,3)
  21. // fn1.apply(obj,[2,3])
  22. fn1.bind(obj,2,3)()
  23. /**
  24. * 修改this指向
  25. * 1.call(修改的this指向,参数1,参数2,.....)
  26. * 2.apply(修改的this指向,[参数1,参数2,.....])
  27. * 3.bind(修改的this指向,参数1,参数2,.....)()
  28. * 区别:
  29. * 1.bind无法进行函数直接调用,call和apply可以进行函数直接调用
  30. * 2.call从第二项开始就是要传入的参数
  31. * 3.apply从第二项开始,所有参数放到数组中
  32. * 4.call的传参与bind相同
  33. */
  34. </script>
  35. </body>
  36. </html>