箭头函数的作用域是和定义这个箭头函数的父级上下文绑定在一起的
匿名函数的作用域是和定义匿名函数的上下文绑定在一起的
var obj = {
id: 0,
func: function(){
console.log(this.id);
}
}
obj.func();
this.id = 1;
var obj1 = {
id: 2,
func: () => console.log(this.id)
}
obj1.func();
输出的结果是:
0
1
[Finished in 0.3s]
补充:
当匿名函数不是对象的方法时,绑定的作用域是全局对象
var id = '0-1'
var obj = {
id: '1-1',
func1: function (){
console.log(this.id);
var func2 = function (){
console.log(this.id);
}
func2();
}
}
obj.func1();
console.log(this === window)
输出的结果:
1-1
0-1
true