this是指向的哪个全局变量,改变this指向的方法有几种?
2023-12-13 10:08:05
无法回答这个问题,因为没有上下文。在JavaScript中,this指向的是当前上下文中的对象。如果没有明确定义上下文,则this将指向全局对象(浏览器中是window对象)。
改变this指向的方法有三种:
- 使用call()、apply()方法将指定对象作为函数的上下文来调用该函数。
- 使用bind()方法来创建一个新函数,将指定对象作为新函数的上下文。
- 使用箭头函数,它们会自动捕获定义时的上下文,而不是在调用时执行上下文。
代码示例:
// 使用call()方法改变this指向
function greet() {
console.log(`Hello, ${this.name}`);
}
const person = { name: 'John' };
greet.call(person); // 输出: Hello, John
// 使用bind()方法改变this指向
const person2 = { name: 'Jane' };
const greetPerson2 = greet.bind(person2);
greetPerson2(); // 输出: Hello, Jane
// 使用箭头函数改变this指向
const person3 = { name: 'Bob' };
const greetPerson3 = () => {
console.log(`Hello, ${this.name}`);
}
greetPerson3.call(person3); // 输出: Hello, undefined
文章来源:https://blog.csdn.net/m0_74801194/article/details/134939911
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!