javascript this指向和改变this指向的call、apply、bind三个方法

this指向

1、全局作用域下 window

console.log(this)   //window

2、普通函数 window

function fn() {
   
   
    console.log(this)   //window
}
fn()

3、立即执行函数IIFE window

   // IIFE(立即执行函数)->window (其实就相当于被调用的普通函数)
    (function () {
   
    console.log(this) })()  // window
    (function () {
   
    console.log(this) }())  // window

4、严格模式,全局作用域中的 this 指向 undefined

 function fn() {
   
   
        'use strict'
        console.log(this)  // 函数内部开启严格模式, this指向undefined
      }
fn()

5、对象中的方法中的this谁调用指向谁(指向调用它的这个对象)

let obj = {
   
   
    name: '张三',
    speak: function () {
   
   
       console.log(this)
    }
}
obj.speak()   // obj

6、注册事件,指向事件源(给谁注册的事件就指向谁)

<button>按钮</button>
   <script>
    let btn = document.querySelector('button')
        btn.onclick = function () {
     
     
            console.log(this)   // btn
        }
   </script>

7、定时器里面的回调函数this指向window

// 当定时器结束后,里面的回调函数被当作普通函数使用,所以this指向window
setTimeout(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十七同志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值