var say="i am window";
function Speak(){
this.say="i am function";
return func=()=>{
console.log(this.say);
return this.say;
}
}
var obj=new Speak();
var str=obj();//i am function
console.log(obj.say);//undefined
console.log(str);//i am function
例子如上,以箭头函数作为返回函数只能保证this指向的是Speak函数,但是obj直接引用say属性得到的undefined,只能通过新声明另一个变量接受参数。
是不是所有闭包函数内的属性都不能被外部对象直接访问?为什么?是因为闭包的特殊性使得this指针丢失了每个属性对应的地址?
请各位大佬帮忙解答下,谢谢!