首页 > 解决方案 > 为什么将函数导入另一个文件时函数的属性不可见?

问题描述

我在文件收集的 dataservice.js 中有这个功能:

export function DataServices() {
    var that = this;
    that.dataServiceUrl = "/CrossServices/SearchService.svc";

    var ds = {
        getStreets: getStreets
    };
    return ds;

    function getStreets(expr, callback, error) {
        //some logic
        return result;
    }
}

我在 mapApp.js 文件中导入上面的函数,如下所示:

    import { DataServices  from "/src/js/services/dataservices";

并尝试以这种方式访问​​ getStreets 属性:

        DataServices.getStreets(3, null, null);

但是我在上面的行中得到了这个错误:

error:  Cannot read property 'getStreets' of undefined  

知道为什么 getStreets 属性不可见吗?

标签: javascriptecmascript-6

解决方案


您正在导出命名函数DataServices

您需要将其设为默认导出,或按名称导入:

export default function DataServices

或者

import { DataServices } from "/src/js/services/dataservices";


推荐阅读