Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Reactjs访问类方法在类外部但在同一文件中_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript Reactjs访问类方法在类外部但在同一文件中

Javascript Reactjs访问类方法在类外部但在同一文件中,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我有这段代码,希望访问AssetMap数组中类之外的类方法 import OrientationEnum from "../enums/orientation_enum"; import * as gameconfig from "../gameconfig"; import GA from "./analytics"; import * as Raven from "raven-js"; import {getQueryString} from "./tools"; const Assets

我有这段代码,希望访问AssetMap数组中类之外的类方法

import OrientationEnum from "../enums/orientation_enum";
import * as gameconfig from "../gameconfig";
import GA from "./analytics";
import * as Raven from "raven-js";
import {getQueryString} from "./tools";

const AssetsMap = new Map([
    [AssetsEnum.background, 'common/background.jpg']
]);

class AssetsManager {

    constructor...

    getConfigValue(key, defaultValue) { ... }

}

如果我尝试访问map数组中的
getConfigValue
方法

[AssetsEnum.background, 'common/background'+this.getConfigValue()+'.jpg']


控制台抛出未定义getConfigValue的错误。我应该如何访问该方法?

您不能使用
this
关键字在类外访问
getConfigValue()
方法。尝试将映射放在类中。

要能够访问类方法,需要有对类实例的引用。例如

从“./enum/orientation\u enum”导入方向;
将*作为gameconfig从“./gameconfig”导入;
从“/analytics”导入GA;
从“Raven js”导入*作为Raven;
从“/tools”导入{getQueryString};
类别资产经理{
构造器。。。
getConfigValue(键,默认值){…}
}
const manager=新资产管理器();
const AssetsMap=新映射([
[AssetsEnum.background,'common/background'+manager.getConfigValue()+'.jpg']
]);
如果
getConfigValue
方法不使用AssetManager类中的属性,您还可以使该方法
成为静态的
。这样就可以在没有类实例的情况下使用此方法

从“./enum/orientation\u enum”导入方向;
将*作为gameconfig从“./gameconfig”导入;
从“/analytics”导入GA;
从“Raven js”导入*作为Raven;
从“/tools”导入{getQueryString};
const AssetsMap=新映射([
[AssetsEnum.background,'common/background'+AssetManager.getConfigValue()+'.jpg']
]);
类别资产经理{
构造器。。。
静态getConfigValue(键,默认值){…}
}

为什么不在构造函数中声明
AssetsMap
呢?我发现
AssetsManager不是构造函数
在尝试使用
const manager=new AssetsManager()创建对象时出错是在实例化类的位置定义或导入的
AssetManager