我们在学习this的时候,我先给大家说点关于this的小知识点。
知识点:Javascript允许在函数体内部,引用当前环境的变量,this的设计目的就是在函数体内部,指代当前函数的运行环境。
当我们知道了这个知识点后,问题就简单多了。我们接下来把使用this的情况分为2类。
第一类:在全局下的函数与在对象里面的函数
var a = 1;
function foo(){
return this.a
}
foo(); // 1 在全局环境下调用函数。
this指向的是全局环境,所以它引用的a是全局环境下的a。再看看这个例子:
var a = 3 ;
var obj = {
var a = 2 ;
function foo(){
return this.a
}
}
obj.foo(); // 2 (this指向的是obj这个环境,所以这个a的值是obj这个环境里面的a的值)
foo();//3 (this指向的是全局环境,所以它引用的a是全局环境下的a)
第二类:在构造函数中的this
构造函数中this指向的是构造函数的实例。
var Foo = function(){
this.name = name
return this
}
var fn= new Foo();
在这个例子里面的this指向的都是fn这个实例。
本文深入解析JavaScript中的this关键字,探讨其在不同环境下的指向规则,包括全局函数、对象方法及构造函数中的应用,帮助读者理解this的工作原理。

被折叠的 条评论
为什么被折叠?



