如何在导出默认值中调用函数内部的另一个函数?

How to call another function inside function in export default?

export default {
 one: () => {
  //some codes
 },
 two: () => {
  //some codes
  one(); // error
  this.one(); // error
 }
}

我有这样的模块,我想在函数 two() 中调用函数 one()。
但是我得到这样的错误:TypeError: Cannot read property 'one' of undefined.
我该如何解决?我想知道原因。

如何将它们提取到单独的函数中,然后将它们包含在导出中?

const one = () => {
  //some codes
};

const two = () => {
  //some codes
  one();
};

export default {
 one,
 two
}

如果您想为 this 关键字提供新的上下文,则不应使用箭头函数。

看这个例子,它在two方法中使用了一个箭头函数。它会 return 错误,因为 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();

这是箭头函数和普通函数的主要区别