js-this

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <title>Document</title>
 8 </head>
 9 <body>
10     <script>
11         var name = 222 //全局
12         var a = {
13             name = 111,
14             say: function () {
15                 console.log(this.name) //掉用函数内的
16             }
17         }
18 
19         var fun = a.say
20         fun() //函数的直接使用,调用全局 ----> say(){console.log(this.window)} 未传参调用全局 222
21         a.say() // 结果:111
22 
23         var b = {
24             name = 333,
25             say: function (fun) { //将a.say传入
26                 fun() //fun.call(window)
27             }
28         }
29         b.say(a.say) //a.say = fun 结果:222
30         b.say = a.say //将a.say赋值给b.say 相当于把 consol.log(this.name) 替换 fun()
31         b.say() // 相当于b.say() 调用 函数内的 name 结果:333
32 
33     </script>
34 </body>
35 </html>

 

posted @ 2021-10-27 15:01  TM_cc  阅读(63)  评论(0)    收藏  举报