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。

        

posted @ 2020-03-03 19:28  一笑i  阅读(124)  评论(0)    收藏  举报