this关键字

Posted wanglei2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了this关键字相关的知识,希望对你有一定的参考价值。

This关键字

This 关键字在js中本质是一个对象,是固定不变的,用于替换一个对象的。

This如何查找

  1. 看this所在的函数前有没有点.,有点.,点前面的是什么this就是什么,没有点this指向window。
  2. 特例 在某些条件下this固定指向window

This指向的修改

         This一般都在函数中使用,每个函数的__proto__上有三个方法,call() apply() bind()

 

      技术图片  

Apply call bind 这三个方法都是用来修改函数中的this指向问题。

Apply怎么使用?

         1.是函数体上的方法。函数名.apply()

          技术图片

         怎么执行,替换掉fn中的this之后,再执行fn,apply的第一个参数是什么,函数中的this就是什么。

         注意事项

  1. apply()中有两个参数,不一定是必填项,当第一个参数什么都不填或则是null/undefined,默认为window

 技术图片

第二个参数必须是数组,数组中的元素和函数的参数对应

 技术图片

Call怎么使用

         用途,用于修改函数中的this指向 也是函数ming.call(),执行的元素先替换函数中的this,然后再执行这个函数

        技术图片

Call中参数的分析

  1. call函数的第一个参数是什么,函数中this就换成什么,当不填或null/undefined,里面的this就是window
  2. 从第二参数开始,跟函数的形参要一一对应

 技术图片

Bind的使用

         Bind的使用,不是用在执行的时候,而是用再函数定义的时候,只有一个参数,用于替换this的。

        技术图片

总结 apply call bind 三者的相同点和不同点。

This在事件中使用

         在事件中,this就是事件.前面的元素对象(事件触发了哪个元素,this就是哪个元素)

        技术图片

This在回调函数中,回调函数中的this统统都是window

         This其实就是函数的生存环境,函数的生存环境跟它在哪里定义有关,跟它在哪里执行无关。在函数中,如果一个函数当做实参,那么这个函数中的this是window。

        技术图片

以上是关于this关键字的主要内容,如果未能解决你的问题,请参考以下文章

this关键字的相关应用

如何理解 JavaScript 中的 this 关键字

this关键字

this关键字

this关键字

this关键字和super关键字