123456789101112131415161718192021222324252627282930313233343536 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- function fn1(x,y) {
- var sum = x * y;
- console.log(sum,'sum')
- console.log(this,'this')
- console.log(this.name)
- }
- var obj = {
- name:"LiLi"
- }
- fn1(2,3)
- // fn1.call(obj,2,3)
- // fn1.apply(obj,[2,3])
- fn1.bind(obj,2,3)()
- /**
- * 修改this指向
- * 1.call(修改的this指向,参数1,参数2,.....)
- * 2.apply(修改的this指向,[参数1,参数2,.....])
- * 3.bind(修改的this指向,参数1,参数2,.....)()
- * 区别:
- * 1.bind无法进行函数直接调用,call和apply可以进行函数直接调用
- * 2.call从第二项开始就是要传入的参数
- * 3.apply从第二项开始,所有参数放到数组中
- * 4.call的传参与bind相同
- */
- </script>
- </body>
- </html>
|