1

我是 JS 新手,所以菜鸟问题:

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

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

如果我理解正确,something是局部变量吗?为什么将其定义this.something = ''为相对于var something = ''?有什么区别吗?如果有,那是什么?

4

2 回答 2

4

它设置的属性something。所指的内容取决于调用方式,但通常它是使用以下命令创建的this对象:thisfunctionNamenew

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

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

于 2013-07-30T11:48:50.153 回答
1
var someThing 

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

this.someThing

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

于 2013-07-30T11:54:29.993 回答