JavaScript 在class里怎么写箭头函数
时间: 2024-04-16 08:27:35 浏览: 13
在 JavaScript 的 class 中,箭头函数可以通过以下方式来编写:
```javascript
class MyClass {
myArrowFunction = () => {
// 函数体
};
}
```
在上面的例子中,`myArrowFunction` 是一个箭头函数,它被定义为 `MyClass` 类的一个成员变量。你可以在这个箭头函数内定义你的逻辑。
需要注意的是,箭头函数在类中的声明方式与普通函数有所不同。箭头函数没有自己的 `this` 值,它继承自外部作用域。这意味着在箭头函数中,你无法通过 `this` 关键字来访问类的实例成员或方法。如果需要使用类的实例成员或方法,建议使用普通函数来定义。
相关问题
js箭头函数里的this指向哪里
在JavaScript的箭头函数中,this指向的是父级作用域的this,如果箭头函数没有父级作用域,那么this指向的是全局对象,即window对象。所以在箭头函数中,this的指向是固定的,无法通过调用方式或者上下文来改变。 箭头函数中的this指向与普通函数不同,普通函数中的this指向调用该函数的对象或者undefined(非严格模式下是window对象),而箭头函数中的this始终指向定义箭头函数时所在的作用域的this值,与调用方式无关。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [js箭头函数/函数this指向](https://blog.csdn.net/Canace_Xyxjjcaw/article/details/120753406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [JavaScript里箭头函数的this指向问题](https://blog.csdn.net/weixin_55501516/article/details/129675677)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
在 class 内定义一个箭头函数和定义一个普通函数会有什么区别?
在 class 内定义一个箭头函数和定义一个普通函数的主要区别是它们在 this 的作用域上有所不同。
普通函数会创建它自己的 this 对象,而箭头函数没有自己的 this 对象,它会捕获上下文中的 this 值。因此,当在 class 内定义一个箭头函数时,箭头函数的 this 值将指向 class 实例对象的 this 值,而不是箭头函数自身的 this 值。
具体来说,当在 class 内定义一个普通函数时,该函数中的 this 将指向函数被调用的对象;而当在 class 内定义一个箭头函数时,该函数中的 this 将指向 class 实例对象。
例如,在下面的代码中,当调用 `person.sayHello()` 方法时,普通函数 `sayHello` 中的 this 指向 `person` 对象,而箭头函数 `sayHi` 中的 this 指向 `person` 对象的 this 值:
```javascript
class Person {
constructor(name) {
this.name = name;
}
sayHello() {
console.log(`Hello, my name is ${this.name}.`);
}
sayHi = () => {
console.log(`Hi, my name is ${this.name}.`);
}
}
const person = new Person('Alice');
person.sayHello(); // 输出 "Hello, my name is Alice."
person.sayHi(); // 输出 "Hi, my name is Alice."
```