返回 3.1
当心! 不为人知的 this 指向规则-面试高频题指南
前端
2024-01-30 12:53:29
- this指向规则全解析
在JavaScript中,this
是一个特殊的,它表示当前执行代码的对象。this
指向的对象根据调用它的上下文而定,可以说,this
是javascript中的一个核心概念,想要真正掌握javascript这门语言,必须掌握this
的指向规则。
1.1 默认指向
当一个函数不是作为对象的方法被调用时,this
指向全局对象,在浏览器环境中,全局对象就是window
对象,而在Node.js环境中,全局对象就是global
对象。
function sayHello() {
console.log(this); // window or global
}
sayHello();
1.2 方法中的this
当一个函数作为对象的方法被调用时,this
指向该对象。
const person = {
name: "John",
sayHello() {
console.log(this.name); // John
},
};
person.sayHello();
1.3 构造函数中的this
当使用new
关键字调用一个函数时,this
指向新创建的对象。
function Person(name) {
this.name = name;
}
const person = new Person("John");
console.log(person.name); // John
1.4 箭头函数中的this
箭头函数没有自己的this
指向,它会继承其父级作用域的this
指向。
const person = {
name: "John",
sayHello: () => {
console.log(this.name); // undefined
},
};
person.sayHello();
2. 箭头函数与传统函数的区别
箭头函数与传统函数之间存在一些关键区别:
- 箭头函数没有自己的
this
指向,它会继承其父级作用域的this
指向。 - 箭头函数没有自己的
arguments
对象,它使用父级作用域的arguments
对象。 - 箭头函数不能被用作构造函数。
- 箭头函数不能使用
yield
关键字。
3. 面试高频题解析
3.1 this
指向面试题
- 什么是
this
指向? - 在默认情况下,
this
指向什么对象? - 在方法中,
this
指向什么对象? - 在构造函数中,
this
指向什么对象? - 在箭头函数中,
this
指向什么对象?
3.2 箭头函数面试题
- 什么是箭头函数?
- 箭头函数有哪些特点?
- 箭头函数与传统函数有什么区别?
- 什么时候应该使用箭头函数?
4. 总结
this
指向规则是JavaScript中一个重要的概念,掌握它可以帮助我们更好地理解和使用JavaScript。箭头函数是ES6中引入的一种新的函数语法,它具有与传统函数不同的特点,在使用时需要特别注意。
希望这篇文章对大家有所帮助,如果你还有其他问题,欢迎在评论区留言。