//demo1
// this多用于函数内部,它永远指向调用他的那个对象
function test1()
{
this.var01 = "test";
}
function test2()
{
alert(var01);
}
var a= new test1(); //这个var01就是a对象的局部变量了
test1(); //这个var01就是全局变量了
test2(); //这个var01就是全局变量了
//demo2
function Foo() {
var b = 20;
(function () {
this.b = 789;
})();
(function () {
alert(this.b); // 789
alert(b); // undefined
var b = 0;
alert(b); // 0
})();
}
//此步骤的第一个匿名函数执行的时候,
//会将b提升为全局变量,
//因为Foo()的执行环境为windows下,而不是在某个对象中
//函数体并不是对象
var f = new Foo();
(function () {
alert(this.b); // 789
alert(b); // 789
})();
JavaScript, this, 对象, 全局变量, 局部变量
JavaScript中的`this`关键字在函数内部指向调用它的对象,`var`关键字定义的变量在不同作用域下有不同的作用范围。理解`this`和作用域对JavaScript编程至关重要。