定义a 和 this.a 本质上是两个不同的变量,没有在定义a后自动添加一个this.a 在window上,而且,在执行带参数的函数时,本质上是把参数传递过去,相当于又声明一个新的a并赋值,对外部的a没有影响
const a = 10
console.log(a);
console.log(this.a);
function change(a){
a = 11
console.log(a);
console.log(this.a);
}
change(a)
console.log(a);
console.log(this.a);
若添加一个this.a = a ,相当于window绑定一个属性a的值为10,并且普通函数内部无法通过this.a获取外层的this.a 的值
var a = 10
console.log(a);
console.log(this.a);
this.a = a
function change(a){
a = 11
console.log(a);
console.log(this.a);
}
change(a)
console.log(a);
console.log(this.a);
普通函数改变为箭头函数=>,this.a 可以获取外层的this.a的值
var a = 10
console.log(a);
console.log(this.a);
this.a = a
var change = (a)=>{
a = 11
console.log(a);
console.log(this.a);
}
change(a)
console.log(a);
console.log(this.a);