思维导图

this 的指向
- 执行函数前有
'.'
点操作符的话,函数体中的this
就指向前面的对象,没有就指向window
,严格模式下指向undefined
。这句话特别的重要,请记住 - 函数没有直接调用者
this
指向全局对象(浏览器中是window,node中是 global)。如匿名函数等 - 构造函数的
this
指向实例本身。 - 箭头函数本身没有
this
的,箭头函数的this
指向最近的非箭头函数this
,找不到就指向window
,严格模式下指向undefined
。
一、普通函数 this 的热身题
热身题 1
再来看一下这句话:执行函数前有 '.'
点操作符的话,函数体中的 this
就指向前面的对象,没有就指向 window
热身题 2
再来看一下这句话:执行函数前有 '.'
点操作符的话,函数体中的 this
就指向前面的对象,没有就指向 window
热身题 3,修改一下热身题 2
二、函数没有直接调用者
函数没有直接调用者 this
指向全局对象(浏览器中是window,node中是 global)。如匿名函数等
热身题 1
热身题 2
三、构造函数中的 this
来读一下这句话:构造函数的 this
指向实例本身
热身题 1
四、箭头函数
- 箭头函数本身没有
this
,箭头函数的this
继承上下文的,里面的this
会指向当前最近的非箭头函数的this
,找不到就是window
(严格模式是undefined) - 箭头函数的
this
始终指向函数定义时的this
,而非执行时
热身题 1
热身题 2
五、call,apply,bind 改变 this 的指向
提示:所有的函数都是基于 Function
这个基类来创建的,同样拥有 Function
原型上面的方法
call
,接受this
的对象,和一组列表。apply
和call
一样,唯一不同的是apply
接受的是一个包含多个参数的数组。bind
同样也是改变函数的this
指向,只不过bind
执行后会返回一个新的函数,新函数中参数来源于剩余的参数
热身题
思考题
1. 笔试题 this 指向问题
2. 和闭包有关的 this 指向问题
结束
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!