js-this
简介
This
一、概念
1 | let v = 1 |
在对象内部的方法中访问对象内部的属性,js需要通过this机制来支持,this是和执行上下文绑定的
this相当于是隐式的提供了一个对象引用,需要关注的问题就是this的指向问题。
以下都是说的非严格模式下
二、this指向问题
1.默认是指向window对象
2.隐式绑定,谁调用就指向谁,对象调用,指向该对象;如果把对象的方法赋给一个全局变量,再调用,则指向window
3.显式绑定,call,apply,bind
4.new关键字修改指向
5.嵌套函数中的this不会从外层函数中继承
5.1.用self变量保存外层函数的this,通过作用域机制使嵌套函数内部可以使用外部的this
5.2.用箭头函数,箭头函数没有this,它里面写this要去外层作用域查找