微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ES6中function函数和箭头函数的this指向

This函数的四种调用方式

1.纯粹的函数调用

          这是函数的最通常用法,属于全局性调用,这是this就指全局(浏览器中为window,node中为global)

 

2.作为对象方法调用

         函数还可以作为某个对象的调用,这时this就指这个上级对象

 

3.作为构造函数调用

         通过这个函数生成一个新对象(object)。这是this就指这个新对象。

4.apply调用

   apply()是函数对象的一个方法,它的作用是改变函数调用对象。因此,this指的就是这第一个参数。

 

 

 

1.纯粹的函数调用

 

通过上下两图代码的调整可以证明此时this就是全局对象

 

2.作为对象方法调用

 

 

此时的this指的是obj这个对象

3作为构造函数调用

 

JS中,我们通过new关键词来调用构造函数:此时this会绑定在该新对象上。

 

4.apply调用

 

 

此时this指的就是这一个参数obj。

 

 

如何确定thi函数的指向:

    认模式下,test——>window  以函数形象调用

    严格模式下,(设置了 “use strict"),this为undefined

    p.test()——>p   以方法的形式调用

    new test()——>新的创建的对象  以构造函数形式调用

     p.call(obj)——> obj     使用call和apply方法调用

this的最终指向始终是调用的他的对象。

认指向定义它时,所处上下文的对象的this指向(这里指的是整个箭头函数处在那个上下文),偶尔没有上下文对象时指向window.

 

即使是call,apply,bind等方法也不能改变箭头函数this的指向。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐