举个例子,我们可以定义一个对象,并在其中定义一个函数:
var person = {firstName: "John",lastName : "Doe",fullName : function() {return this.firstName + " " + this.lastName;}}在这个例子中,this指代的是person对象。当我们调用fullName()方法时,this所指代的就是person对象。
那么,this还有什么其他的用途呢?我们可以看一下下面这个例子:
function myFunction() {console.log(this);}myFunction();在这个例子中,this所指代的是全局对象window。因为我们在全局环境下调用了这个函数,而this所指代的就是当前作用域中的对象,也就是window对象。
另外,this还可以被用于类的构造函数中:
function Person(name, age) {this.name = name;this.age = age;}var person1 = new Person("John", 25);console.log(person1.name); // 输出 "John"在这个例子中,this所指代的是新创建的对象。当我们通过new关键字调用构造函数时,this所指代的就是新创建的对象。
还有一个需要注意的地方,就是当函数中嵌套函数时,this可能会出现一些意想不到的结果。我们可以看一下下面这个例子:
var person = {firstName: "John",lastName : "Doe",fullName : function() {console.log(this.firstName + " " + this.lastName);function inner() {console.log(this.firstName + " " + this.lastName);}inner();}}person.fullName();在这个例子中,当我们调用person.fullName()时,this所指代的是person对象。但是,在inner()函数中,this所指代的就不再是person对象了,而是全局对象window。因此,我们需要注意,在嵌套函数中使用this时,需要注意this所指代的对象。
综上所述,this在Javascript中是一个非常重要且常用的关键字。它的含义是指当前正在执行的函数或方法执行的上下文对象。在使用中需要注意,在全局环境下调用函数时,this所指代的是全局对象window;当使用new关键字调用构造函数时,this所指代的是新创建的对象;在嵌套函数中使用this时需要注意,this所指代的对象可能会发生改变。
上一篇:css按照比例缩小网页
下一篇:CSS指定区域满屏按钮









