码迷,mamicode.com
首页 > 其他好文 > 详细

this关键字

时间:2020-03-03 20:45:12      阅读:43      评论:0      收藏:0      [点我收藏+]

标签:替换   efi   com   bsp   没有   事件   是什么   有一个   def   

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关键字

标签:替换   efi   com   bsp   没有   事件   是什么   有一个   def   

原文地址:https://www.cnblogs.com/wanglei2/p/12404112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!