OK,对于箭头函数的this
用一句话概括:箭头函数中的this指向的是定义时的this,而不是执行时的this。
如果上面这句话听的是懂非懂或者完全不懂的,没关系,下面会有案例讲解。
举个栗子
来看看this的一个使用案例:
//定义一个对象
var obj = {
x:100, //属性x
show(){
//延迟500毫秒,输出x的值
setTimeout(
//匿名函数
function(){console.log(this.x);},
500
);
}
};
obj.show();//打印结果:undefined
案例中,我们的obj对象中有一个属性x和一个属性show( )方法(用的是对象的简洁表示法,第九节已讲解,点击查看),show( )通过this打印出x的值。可最后一句代码执行后,我们打印出的结果是undefined。这是为什么呢?难道x的值不是100吗?
没错,x的值确实是100,但问题出在了this上,当代码执行到了setTimeout( )的时候