var与this定义变量的区别以及疑惑

Posted 小小鸟儿!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了var与this定义变量的区别以及疑惑相关的知识,希望对你有一定的参考价值。

我们知道: var可以定义一个局部变量,当然如果var定义在最外层的话,就是全局的局部变量,也就算是全局变量了。 而this关键字定义的变量准确的说应该算是成员变量。即定义的是调用对象的成员变量。 另外在“类(构造函数)”中,我们通常也会用var定义私有属性,而this定义公共属性。 以上这些是大家都知道的,若不知道看了就大概知道的。但我今天遇到了一个疑惑,恳请社区高手指点。是这样的:

//打开浏览器控制台执行一下命令 //定义了一个全局变量 var wahaha = “娃哈哈”;//这里双引号改成英文双引号  //输出“娃哈哈” console.log(wahaha);  //输出“娃哈哈”,我们知道这里的this指向的是window,即之前的var定义已经把wahaha变量定义成了window的成员变量 console.log(this.wahaha);

上面代码两条控制台日志语句都输出了“娃哈哈”的结果,然而如果这样

//定义一个类 function ClassA(){ //定义一个私有属性 var wahaha = “娃哈哈”;//这里双引号改成英文双引号 //输出“娃哈哈”;   console.log(wahaha); //输出undefined   console.log(this.wahaha); }  var a = new ClassA();

 

链接 

以上是关于var与this定义变量的区别以及疑惑的主要内容,如果未能解决你的问题,请参考以下文章

jacript var let const 区别

js 中使用var与省略var 定义变量的区别

js变量var与let的区别

PHP中var_dump 和dump的区别是啥????

面试题 var let const的区别 箭头函数和普通函数的区别

聊聊var与let 在window下面的区别(除开作用域)