JS代码中没有声明的变量,却可以this到的原因

在进行minst数字识别中,发现明明没有声明的变量却都可以通过this.得到,原因是this也是一种声明变量的方式,之前接触java比较多,所以对这种声明方式比较陌生。
查找资料后发现,JS声明变量有var、let、this三种,比较常用的有var和this
class Main{
var c = 10;
function test(){
var a=10;
this.b=10;
}
}
var声明的变量的位置决定作用了变量的作用域,和java相似,变量c的作用域是全局的,a是局部的,仅在test内起作用。
而this声明的变量b,是由声明位置决定的,尽管是在test内声明的,但它的作用域依然和c一样,是全局的。
借鉴一下RUNOOM.COM教学网站地址https://www.runoob.com/js/js-this.html


浙公网安备 33010602011771号