📅  最后修改于: 2023-12-03 14:42:30.218000             🧑  作者: Mango
在 JavaScript 中,this 表示当前正在执行的代码所属的对象。在函数内部,this 表示函数的调用者。
在全局作用域中,this 表示全局对象。在浏览器中,全局对象是 window 对象。
console.log(this); // 输出 Window 对象
在函数中,this 的值取决于函数的调用方式。当函数作为普通函数进行调用时,this 指向全局对象。
function foo() {
console.log(this); // 输出 Window 对象
}
foo();
当函数作为对象的方法进行调用时,this 指向该对象。
const obj = {
foo() {
console.log(this); // 输出 obj 对象
}
};
obj.foo();
当使用 new 运算符调用函数时,this 指向新创建的对象。
function Person(name) {
this.name = name;
}
const person = new Person("John");
console.log(person.name); // 输出 John
在箭头函数中,this 的值由所在的词法作用域决定,而不是被调用时的情况。
const obj = {
foo: () => {
console.log(this); // 输出全局对象
}
};
obj.foo();
可以使用 call() 和 apply() 函数显式地将 this 绑定到指定的对象。
function foo() {
console.log(this.name);
}
const obj = {
name: "John"
};
foo.call(obj); // 输出 John
在 JavaScript 中,this 表示当前正在执行的代码所属的对象,具体的取值取决于调用方式。在全局作用域中,this 表示全局对象;在函数中,this 指向全局对象或该函数所属的对象;在箭头函数中,this 受词法作用域影响;显式绑定 this 可以通过 call() 和 apply() 函数实现。