this关键字
Posted wanglei2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了this关键字相关的知识,希望对你有一定的参考价值。
This关键字
This 关键字在js中本质是一个对象,是固定不变的,用于替换一个对象的。
This如何查找
- 看this所在的函数前有没有点.,有点.,点前面的是什么this就是什么,没有点this指向window。
- 特例 在某些条件下this固定指向window
This指向的修改
This一般都在函数中使用,每个函数的__proto__上有三个方法,call() apply() bind()
Apply call bind 这三个方法都是用来修改函数中的this指向问题。
Apply怎么使用?
1.是函数体上的方法。函数名.apply()
怎么执行,替换掉fn中的this之后,再执行fn,apply的第一个参数是什么,函数中的this就是什么。
注意事项
- apply()中有两个参数,不一定是必填项,当第一个参数什么都不填或则是null/undefined,默认为window
第二个参数必须是数组,数组中的元素和函数的参数对应
Call怎么使用
用途,用于修改函数中的this指向 也是函数ming.call(),执行的元素先替换函数中的this,然后再执行这个函数
Call中参数的分析
- call函数的第一个参数是什么,函数中this就换成什么,当不填或null/undefined,里面的this就是window
- 从第二参数开始,跟函数的形参要一一对应
Bind的使用
Bind的使用,不是用在执行的时候,而是用再函数定义的时候,只有一个参数,用于替换this的。
总结 apply call bind 三者的相同点和不同点。
This在事件中使用
在事件中,this就是事件.前面的元素对象(事件触发了哪个元素,this就是哪个元素)
This在回调函数中,回调函数中的this统统都是window
This其实就是函数的生存环境,函数的生存环境跟它在哪里定义有关,跟它在哪里执行无关。在函数中,如果一个函数当做实参,那么这个函数中的this是window。
以上是关于this关键字的主要内容,如果未能解决你的问题,请参考以下文章