Javascript:this.varName =“”vs var varName =“”

时间:2013-07-30 11:45:23

标签: javascript variables

我是JS新手,所以noob问题:

我看到在其中定义变量的函数:

 function functionName(){
     this.something = "";
 };

如果我理解正确,something是一个局部变量?为什么将其定义为this.something = ''而不是var something = ''? 有没有什么区别,如果有的话是什么?

2 个答案:

答案 0 :(得分:4)

它设置something的属性thisthis引用的内容取决于functionName的调用方式,但通常是使用new创建的对象:

var foo = new functionName();
console.log(foo.something);

如果您在函数中使用var something,则该变量将无法从外部访问,因此您无法在上面的示例中执行foo.something

答案 1 :(得分:1)

var someThing 

是一个局部变量 - 意味着它存在于当前块的范围内

this.someThing

是一个实例变量 - 意味着它属于该对象,并且在该对象的所有方法中都可见。