this
是JavaScript中的一个关键字,它通常用于表示当前执行上下文中的对象。具体来说,this
指向的是调用当前函数的对象。
在JavaScript中,this
的值是在函数被调用的时候确定的,而不是在函数被定义的时候确定的。
this
的取值规则比较复杂,它取决于函数的调用方式。以下是几种常见的调用方式及this
的取值:
this
指向全局对象(在浏览器中是window
对象)。this
指向该对象。call
或apply
方法调用:如果函数是通过call
或apply
方法调用的,this
指向作为第一个参数传递给call
或apply
方法的对象。this
指向新创建的对象。以下是this
的一些使用示例:
function Person(name, age) {
this.name = name;
this.age = age;
}
var person1 = new Person('Alice', 25);
console.log(person1.name); // 'Alice'
var person2 = {
name: 'Bob',
age: 30,
sayName: function() {
console.log(this.name);
}
};
person2.sayName(); // 'Bob'
在上面的示例中,person1
对象是通过Person
构造函数创建的,因此this
指向person1
对象。而person2.sayName()
是作为person2
对象的方法被调用的,因此this
指向person2
对象。