我发现了一些像这样的代码:
Function a(){ this.somevariable = ''; }
还有其他一些代码:
Function a(){ var somevariable = ''; }
它们之间的区别在于变量声明。我需要知道来自this
的{{1}}是什么。它与this.somevariable
不同吗?
答案 0 :(得分:-1)
this
是JavaScript中的关键字。
function test(){
this.x = 10;
}
在这种情况下this
表示内部对象,只能在函数中使用。
具有不同场合的功能,this
的值会发生变化。但是有一个通用原则:this
表示调用函数的对象。
案例1: 纯函数调用:
这是该功能最常用的,属于全局调用。
所以this
只是全局对象Global的意思。
e.g:
function test(){
this.m = 10;
alert(this.m);
}
test(); // there alert 10
为了证明this
是一个全局对象:
var m = 10;
function test(){
alert(this.m);
}
test(); // 10
并且:
var m = 10;
function test(){
this.m = 0;
}
test();
alert(m); // 10
案例2: 作为调用函数的对象。
function test(){
alert(this.m);
}
var obj = {};
obj.m = 10;
obj.n = test;
obj.n(); // 10
案例3:
作为构造函数
function test(){
this.m = 10;
}
var obj = new test();
alert(obj.m); // 10
为了表明在这种情况下this
不是全局对象:
var m = 10;
function test(){
this.m = 1;
}
var o = new test();
alert(m); //10