C/C++教程

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

本文主要是介绍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的指向。

 

这篇关于ES6中function函数和箭头函数的this指向的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!