首先使用 var
function testCode(some)
{
var something = some;
}
第二个使用这个
function testCode2(some)
{
this.something = some ;
}
首先使用 var
function testCode(some)
{
var something = some;
}
第二个使用这个
function testCode2(some)
{
this.something = some ;
}
在第一个函数中,something
是一个私有(局部)变量,这意味着它在函数之外完全不可访问;而在第二个中,它是一个公共实例变量。设置变量的上下文取决于您调用函数的方式:
> testCode2("foo"); // this will refer to document.window
> something
"foo"
>> var obj = new testCode2("foo"); // this will refer to the new object
>> something
ReferenceError: something is not defined
>> obj.something
"foo"
如果将这些函数用作函数,则 this 关键字将使变量变为静态。如果函数被调用两次,this.something 仍然有它的值,而第一个主题将在函数完成执行后擦除变量数据。
如果您将它们用作类构造函数,则 var 将定义一个私有变量,这将声明一个公共变量。
看到这个小提琴:http: //jsfiddle.net/UUFuX/1/