//箭头函数内部的this
console.log(this);//指向当前的js的模块对象 每一个js文件就是一个模块
let say = () => {
console.log(this);
}
say()

let obj = {
username:'zs',
say, //属性简写 say:say
objSay(){
console.log(this);
},
//使用立即执行函数来看一下this的指向
objSayLj:(function(){
console.log('+++++++'+this);
return() => console.log('+++++'+this);
})(),
objSayLj2:( () => {
console.log('------'+this);
return() => console.log('------'+this);
})()
}

//在这之前谁调用了方法 this指向的就是谁
//但是再箭头函数中不一样 箭头函数中的this指向的是外部的this
//三个this都是指向当前的js模块对象
obj.say()
//在对象内部自定义一个方法 而不是箭头函数时
//this指向的就是当前使用他的对象(指向他的对象)
obj.objSay()
//在对象内部定义一个立即执行函数
//因为立即执行函数不依赖任何东西 只依赖global对象
//所以this指向的是global对象
obj.objSayLj()
//在对象内部使用箭头函数定义一个立即在执行函数
//this指向当前js的模块对象
//箭头函数的this指向箭头函数外部的环境
obj.objSayLj2()