this指向,普通函数与箭头函数
时间: 2024-05-15 18:14:18 浏览: 91
this指针的绑定规则和箭头函数的使用
在 JavaScript 中,this 是一个非常特殊的关键字,它指向当前执行上下文的对象。但是,在普通函数和箭头函数中,this 的指向有所不同。
在普通函数中,this 指向调用该函数的对象。如果没有明确指定调用对象,则默认指向全局对象(浏览器中为 window 对象,Node.js 中为 global 对象)。
而在箭头函数中,this 不会根据调用方式而改变指向,而是继承自外部函数的执行上下文。这里的外部函数指的是包含当前箭头函数的最近的普通函数。
下面是一个示例:
```
const obj = {
name: 'Alice',
sayHi: function () {
console.log(`Hi, my name is ${this.name}`);
},
sayHiArrow: () => {
console.log(`Hi, my name is ${this.name}`);
}
};
obj.sayHi(); // 输出 "Hi, my name is Alice"
obj.sayHiArrow(); // 输出 "Hi, my name is undefined"
```
在上面的代码中,`sayHi()` 方法是一个普通函数,它的 this 指向调用它的对象 `obj`,因此输出了正确的名称。而 `sayHiArrow()` 方法是一个箭头函数,它的 this 继承自外部函数 `obj`,但是由于箭头函数没有自己的 this,因此输出了 undefined。
阅读全文