this 指向

-官方:指当前代码执行的上下文环境(context)
-私人:
就是一个使用在作用域内(全局 / 函数内)的关键字

全局作用域 this
->在全局作用域内,this就是window(特指前端JS)

函数作用域 this
定义:不管函数在哪定义,不管函数怎么定义,只看函数的调用方式(箭头函数除外)
1、普通调用
-函数名()
-函数内的 this 指向 window

2、对象调用
-对象名.函数名()
-函数内的 this 指向 点( . )前面的全部内容

3、事件处理函数
-事件源.on事件类型 = 函数
-事件源.addEventListener(‘事件类型’,函数)
-函数内的 this 指向 事件源(绑定在身上的事件)

4、定时器处理函数
-setTimeout(函数,数字)
-setInterval(函数,数字)
-函数内的 this 指向 window

5、自调用函数
-(函数)()
-函数内的 this 指向 window

6、箭头函数
-() => {}
-函数内的 this 是该箭头函数外部作用域的 this
-唯一一个不看调用看定义决定 this 的

强行改变 this 指向

this 指向是因为函数的调用而出现的
在调用函数的的时候,改变函数内的this指向

1、call ()
语法:直接连接在函数后面使用
函数名.call()
对象名.函数名.call()
参数:
第一个参数:函数内的 this 指向
第二个参数开始:依次给是该函数的实参
特点:立即调用函数

2、apply()
语法:直接连接在函数后面使用
函数名.apply()
对象名.函数名.apply()
参数:
第一个参数:函数内的this指向
第二个参数:是一个数组或者伪数组类型都可以,内部每一个数据按照顺序是该函数的实参
特点:立即调用函数
特殊作用:改变函数传递参数的方式

3、bind()
语法:直接连接在函数后面使用
函数名.bind()
对象名.函数名.bind()
参数:
第一个参数:函数内的this指向
第二个参数开始:依次给是该函数的实参
特点:不会立即调用函数,而是返回一个新的函数,新函数内的this被锁定死了
特殊作用:改变那些不会被立即调用的函数的 this

JavaScript - this指向以及强行改变this指向相关推荐

  1. this指向和如何改变this指向 (详解)

    注:颜色标识为重要字眼.  目录:-this详解            -改变this指向的方法 一.this概述 它是JS的关键词,是一个代词"指代不明",需要代码执行过程中根据 ...

  2. JS篇之this指向以及如何改变this指向

    this指向的几种类型                  1.作为普通函数调用 this指向window var x = 1 var y = 2 function test(){var x = 2co ...

  3. this指向,并改变this指向

    不同场景下的this指向问题 window 在js文件中直接打印this console.log(this); // window 浏览器中如下: 对象 1.首先创建一个平平无奇 对象,在方法中打印t ...

  4. javaScript改变this指向的三种方法

    javaScript提供了一些函数方法帮助我们处理函数内部this的指向问题,常用的有bind().call().apply()三种方法 1.call() 方法调用一个对象.简单理解为调用函数的方式, ...

  5. JavaScript基础--改变this指向的方法

    1. this指向 this随处可见,一般谁调用,this就指向谁.this在不同环境下,不同作用下,表现的也不同. 以下几种情况,this都是指向window的: ① 全局作用下,this指向的是w ...

  6. java改变this指向_$.on()方法和addEventListener改变this指向

    jQuery $.on()方法和addEventListener改变this指向 标签(空格分隔): jQuery JavaScript jQuery $.on() jq的绑定事件使用$([selec ...

  7. 作用域和改变this指向

    1,作用域和自由变量 作用域代表了一个变量的合法范围,一个变量的作用域是程序源代码中定义的这个变量的区域. 1,全局作用域 不在任何函数内声明的变量(函数内省略var的也算全局)称作全局变量 就是在最 ...

  8. 为什么要改变this指向?

    首先this是什么? 按照官方正规的解释,this关键字的意义被解释为"指向当前对象的引用".this是面向对象语言中的一个重要概念,在JAVA,C++等面向对象的语言中,this ...

  9. 箭头函数 改变this指向

    1.箭头函数 <div>我是div</div><script>const oDiv = document.querySelector('div');// 普通函数o ...

最新文章

  1. 面试热点|理解TCP/IP传输层拥塞控制算法
  2. UA MATH567 高维统计III 随机矩阵4 欧氏空间上的集网与覆盖
  3. python array函数_Python numpy.array函数方法的使用
  4. 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
  5. P3846-[TJOI2007]可爱的质数【BSGS,数论】
  6. 《Code:The Hidden Language Of Computer Hardware and Software》 ——笔记
  7. 计算机组成原理(一)计算机系统概述
  8. Executors源码解读——创建ExecutorService线程池
  9. NLP最新趋势,7个主流业务场景!
  10. 【Luogu】P1972HH的项链(链表+树状数组)
  11. 以色列开发四旋翼无人机室内安保无人机-我爱无人机网
  12. java 偏向锁_Java偏向锁状态转移原理
  13. 机器人控制器编程课程-教案02-基础
  14. 目标板(linux)与PC 网卡 直连(TFTP)
  15. timesat数据如何读取_判二手车调表车另类方法。如何利用OBD读取可靠数据(技术类)...
  16. 解决 HBuilderX 控制台报libpng warning: iCCP: cHRM chunk does not match sRGB的问题
  17. anki卡片浏览器_Anki Guide by Corkine
  18. 如何获得免费二级域名?仅需这一步
  19. 举例跟踪分析Linux内核5.0系统调用处理过程
  20. Fatal Python error: init_stdio_encoding: failed to get the Python codec name of the stdio encoding

热门文章

  1. [Pytorch系列-61]:循环神经网络 - 中文新闻文本分类详解-3-CNN网络训练与评估代码详解
  2. mysql存储过程基础写法
  3. Linux_MySQL数据库基础
  4. 基于 Impala 的高性能数仓实践之物化视图服务
  5. Android 项目必备(二十六)-->获取手机中所有 APP
  6. 怎样将几个pdf文件合成一个?
  7. 薅羊毛专业版第三十六次更新
  8. Windows下使用Darknet训练自己的数据集(模型:yolov4-tiny、数据集:垃圾分类)
  9. 官宣:CSDN发放福利!免费使用自定义域名功能一个月!
  10. github.io网页无法打开(连接不是私密连接)