箭头函数和普通函数的区别

2018-02-27  本文已影响0人  月半女那

普通函数:

1.thiss表示的是它的直接调用者,

2.默认情况下,如果没有直接调用者,this指向window

3.在严格模式下,如果没有直接调用者this表示undefined

4.使用call,apply,bind,绑定 的this指向绑定的对象

箭头函数

this默认指向在定义它时它所在的对象,而不是执行对象

例如:例1.

    返回的是 window

  例2

调用结果是2,4,8,8

<1> 12行代码

val变量在没有指定对象前缀,默认从函数中找,找不到则从window中找全局变量

即 val *=2 就是 window.val *= 2

this.val默认指的是 obj.val ;因为 dbl()第一次被obj直接调用

<2>14行代码调用

func() 没有任何前缀,类似于全局函数,即  window.func调用,所以

第二次调用的时候, this指的是window, val指的是window.val

第二次的结果受第一次的影响

例3.

返回的是undefined

例4.

由于是箭头函数,所以返回的是定义它时它所在的对象,所以是 obj

借鉴于:ES6中箭头函数与普通函数this的区别 - 自由灬飞翔丨 - 博客园

上一篇 下一篇

猜你喜欢

热点阅读