我不确定JS模块是否应该像这样工作,但这没有任何意义。我正在使用React,我想从一个模块导出一个对象,然后在该对象上调用方法。到目前为止,该方法运行良好,但问题是在被调用的方法内部,this
并未指向对其进行调用的对象,并且我无法访问其他成员方法。这是一个示例:
export let localService = {
getData: () => {
console.log(this);
this.testMethod();
},
testMethod: () => {
}
};
在另一个文件中,我导入对象并调用方法:
import {localService} from '../../localService.js';
localService.getData();
现在事情变得奇怪了,在getData
内部,我无法直接访问this.testMethod()
,因为this
有点不同,这是console.log(this)
的输出
,当然,调用this.testMethod()
会引发错误,指出该方法不存在。我可以像这样访问testMethod()
:this.a.testMethod()
,但是这个a
来自哪里?那是正常现象,还是React的错?
答案 0 :(得分:0)
现在您的localService
是json数据类型,这就是您在进行控制台操作时获得a
的原因,您无法在其中调用其他功能。
您必须分别创建每个功能。
使用以下内容创建localService.js
。
export const getData = () => {
console.log("getData");
testMethod();
};
export const testMethod = () => {
console.log("testMethod");
};
像这样导入localService.js
。
import * as localService from '../../localService.js';
现在您可以致电localService.getData()