在JavaScript中,this
关键字指向当前执行上下文的对象。它通常在对象方法中使用,表示该方法所属的对象。
在函数中使用this
,它的值取决于函数是如何被调用的。有以下几种情况:
this
指向全局对象(在浏览器中是window
)。function func() {
console.log(this); // 输出全局对象
}
func();
this
,它指向调用该方法的对象。var obj = {
name: 'John',
sayHello: function() {
console.log('Hello, ' + this.name); // 输出 Hello, John
}
};
obj.sayHello();
this
指向新创建的对象实例。function Person(name) {
this.name = name;
this.age = 0;
}
Person.prototype.sayHello = function() {
console.log('Hello, ' + this.name); // 输出 Hello, John
};
var john = new Person('John');
john.sayHello();
this
值,它继承自父执行上下文。这意味着箭头函数中的this
值取决于它被定义时的上下文,而不是它被调用时的上下文。例如:var obj = {
name: 'John',
sayHello: () = > {
console.log('Hello, ' + this.name); // 输出 undefined
}
};
obj.sayHello();
在这个例子中,箭头函数没有自己的this
值,所以它继承了父执行上下文的this
值,即obj
对象。因此,在箭头函数中使用this
,它指向的是obj
对象,而不是箭头函数本身。
全部0条评论
快来发表一下你的评论吧 !