我是JS新手,所以noob问题:
我看到在其中定义变量的函数:
function functionName(){
this.something = "";
};
如果我理解正确,something
是一个局部变量?为什么将其定义为this.something = ''
而不是var something = ''
?
有没有什么区别,如果有的话是什么?
答案 0 :(得分:4)
它设置something
的属性this
。 this
引用的内容取决于functionName
的调用方式,但通常是使用new
创建的对象:
var foo = new functionName();
console.log(foo.something);
如果您在函数中使用var something
,则该变量将无法从外部访问,因此您无法在上面的示例中执行foo.something
。
答案 1 :(得分:1)
var someThing
是一个局部变量 - 意味着它存在于当前块的范围内
this.someThing
是一个实例变量 - 意味着它属于该对象,并且在该对象的所有方法中都可见。