let a = 10;
const foo = {
a:20,
b:function(){
let a = 30;
return this.a
},
c:()=>{
let a = 40;
return this.a
}
}
const d = {
a:50
}
//输出这些的理由是:
//let声明的不在window中,this指向window,而window上a没有啊,因为不是var
//箭头函数无法被bind绑定,箭头函数this在定义的时候寄指定了,this还是window
console.log(foo.b()); //20
console.log(foo.c()); //undefined
console.log(foo.b.bind(d)()); //50
console.log(foo.c.bind(d)()); //undefined