对于新的 JavaScript 开发人员来说,理解“this”关键字可能是一件非常棘手的事情。它因其模糊性而闻名,它的值会根据函数的调用位置和方式而改变。本文旨在通过对初学者友好的解释和一些现实世界的代码示例来澄清“这个”的误区。
JavaScript 中的“this”到底是什么?
JavaScript 关键字“this”仅指代它所属的对象。根据代码中使用的位置,它可能具有不同的值:
在方法中 - ‘this’ 指的是该方法的所有者对象。
单独 - “this”指的是上下文的全局对象。
在 js 函数中 - ‘this’ 指的是全局对象。
在 js 函数中(严格模式) - ‘this’ 未定义。
在事件中 - ‘this’ 指的是接收事件的元素。
让我们用真实的代码示例来理解“这个”:
全局上下文中的“this”关键字:
console.log(this); // In a browser environment 'this' keyword will refer to the global window object here.
对象方法中的“this”关键字:
const person = {
name: 'Alex',
greet: function() {
console.log('Hey, my name is ' + this.name); }
};
person.greet(); // 'Hey, my name is Alex'
带有构造函数的“this”关键字:
function Person(name) {
this.name = name;
}