IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 关键字this的指向 -> 正文阅读

[JavaScript知识库]关键字this的指向

每个函数内容里都有一个关键字叫做this。不同的情况下,this代表的内容也是不一样的。
箭头函数没有this,箭头函数的this是它所处的上层环境的this。
普通函数可以通过事件、apply/call等改变this指向,但是和箭头函数通通没有关系。

1. 普通函数中的this代表window

function fn(){
    console.log(this);
}
fn(); //this就是--> window

2. 定时器中的this代表window

var obj = {
    eat:function(){
        setTimeout(function(){
            console.log(this);
        });
    }
};
obj.eat(); // this就是-->window

3. 自调用函数中的this代表window

document.querySelector("button").onclick=function(){
    (function(){
        console.log(this);
    })()
}
// this就是-->window

4. 对象方法中的this代表调用这个方法的对象

注意:这里的this不是方法,不是方法,不是方法。

var obj = {
    skill:function(){
        console.log(this);
    }
};
obj.skill(); // this就是-->obj

5. 事件函数中的this代表当前事件的事件源

也就是说事件函数中,谁调用,this就指向谁。

document.querySelector("button").onclick=function(){
    console.log(this);
}
//this就是--> <button>按钮</button>

6.箭头函数的this指向上层环境中的this

箭头函数没有this,箭头函数的this是它所处的上层环境的this。在定时器内部定义了一个箭头函数,在这里没有自身的this指向,指向上层环境中的this,上层环境就是button按钮点击事件,所以这里的this就是button按钮。

document.querySelector("button").onclick=function(){
    // 这里的this代表button按钮,也就是定时器内的箭头函数的上层环境,所以定时器内部的箭头函数的this就是button按钮
    setTimeout(()=>{console.log(this);});
}
//this就是--> <button>按钮</button>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:01:20  更:2022-06-25 18:04:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/27 23:28:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码