最近在学ES6的时候,发现使用箭头函数的时候的this指向不太清楚,和普通的对象创建做了一些对比,讲讲自己的理解,有问题希望大家和我一起讨论研究
箭头函数 和 function(){}定义的区别,箭头函数的
这里的所有代码基于chrome进行测试
这里有几个帖子是作为参考的
(1)阮一峰老师ES6
为了分清箭头函数中的this和普通的this的区别,了解两个概念
普通函数里面的this:
总是代表它的直接调用者,没找到直接调用者,则this指的是 window(匿名函数,定时器中的函数,由于没有默认的宿主对象,所以默认this指向window)
箭头函数中的this:箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象,箭头函数中没有自己的this的,而箭头函数会默认使用父级的this,箭头函数的this是父域中的!!!!
自己理解(错误请给我指正):无论是不是在箭头函数中,只要指向的this的量没找到(undefined),就会到全局的window里面找,找到就返回window的值. 下面这个例子说明:
var x=11;
var obj={
x:22,
say1:function(){
console.log(this.x)
},
say2:()=>console.l