Javascript:this.varName="&引用;vs var varName="&引用;
我不熟悉JS,所以没有问题: 我看到了定义变量的函数:Javascript:this.varName="&引用;vs var varName="&引用;,javascript,variables,Javascript,Variables,我不熟悉JS,所以没有问题: 我看到了定义变量的函数: function functionName(){ this.something = ""; }; 如果我理解正确,某物是局部变量?为什么它被定义为this.something='而不是var something=''? 有什么区别吗?如果有,那是什么?它设置了这个的属性something。此所指的内容取决于调用functionName的方式,但通常它是使用new创建的对象: var foo = new functionNam
function functionName(){
this.something = "";
};
如果我理解正确,某物是局部变量?为什么它被定义为this.something='
而不是var something=''
?
有什么区别吗?如果有,那是什么?它设置了这个的属性something
。此所指的内容取决于调用functionName
的方式,但通常它是使用new
创建的对象:
var foo = new functionName();
console.log(foo.something);
如果在函数内部使用var something
,则从外部无法访问该变量,因此在上述示例中无法执行foo.something
。它设置this
的属性something
。此所指的内容取决于调用functionName
的方式,但通常它是使用new
创建的对象:
var foo = new functionName();
console.log(foo.something);
var someThing
如果在函数内部使用var something
,则从外部无法访问该变量,因此在上述示例中无法执行foo.something
var someThing
是局部变量-表示它存在于当前块的范围内
this.someThing
是一个实例变量-表示它属于该对象,并且在该对象的所有方法中都可见
是局部变量-表示它存在于当前块的范围内
this.someThing
是一个实例变量-表示它属于该对象,并且在该对象的所有方法中都可见 这与变量的范围有关,您可能希望检查这个问题及其接受的答案:tl;dr:使用var
使某事物成为该上下文范围内的变量;省略var
会隐式地将变量标记为全局变量;使用this
使其成为执行上下文的属性(this
对象)检查这是否有帮助-这与变量的范围有关,您可能希望检查此问题及其接受的答案:tl;dr:使用var
使某事物成为该上下文范围内的变量;省略var
会隐式地将变量标记为全局变量;使用this
使其成为执行上下文(this
对象)的一个属性,检查这是否有帮助-