javascript - 如何在导出默认值中调用函数内部的另一个函数?
问题描述
export default {
one: () => {
//some codes
},
two: () => {
//some codes
one(); // error
this.one(); // error
}
}
我有这样的模块,我想在函数二()中调用函数一()。
但我得到了这样的错误:TypeError: Cannot read property 'one' of undefined
。
我该如何解决?我想知道原因。
解决方案
如果您想为this
关键字提供新的上下文,则不应使用箭头功能。
看这个例子,它在方法中使用了一个箭头函数two
。它将返回错误,因为this
关键字与对象无关,但保留了最后一个函数的上下文。
let obj = {
one: function() {
console.log("one");
},
two: () => { // Arrow function
this.one();
}
}
obj.two();
如果您使用普通函数,则this
关键字将与对象相关:
let obj = {
one: function() {
console.log("one");
},
two: function() { // Normal function
this.one();
}
}
obj.two();
这是箭头函数和普通函数的主要区别
推荐阅读
- python - 如何使用 CASCADE 指令以 ORM 方式使用 SqlAlchemy 清除 PostgresDB
- java - 没有 Spring Security 的 Spring Boot Web API 上的错误 403
- javascript - 如何使用先前从 JSON 获取并解析为对象的 td{element) 数据将行附加到表中
- angular - 如果不是 mat-button-toggle-group 的直接子代,则 Mat-button-toggle 会丢失组样式
- swift - 在 Swift 中使用 UICollectionCell 获取属性不会覆盖其超类中的任何属性
- thrift - Thrift 二进制协议错误
- django - 使用 html 表单在 django 中呈现页面
- python - 尝试编写代码但收到错误:IndexError: string index out of range
- javascript - 在每个循环中添加不同数量的“-”(javascript)
- esp8266 - ESP8266-12F 故障