从带有节点的javascript文件导入和运行函数

时间:2017-08-31 21:55:46

标签: javascript

我有一个简单的JavaScript问题。我有两个文件,a.js和b.js在同一目录中定义。

在a.js中我定义了一个函数:

declare namespace __esri {
    /* snip */
    interface Map extends Accessor, LayersMixin {
        allLayers: Collection;
        basemap: Basemap;
        ground: Ground;
    }

    interface MapConstructor {
        new(properties?: MapProperties): Map;
    }

    export const Map: MapConstructor;
    /* snip */
}

declare module "esri/Map" {
    import Map = __esri.Map;
    export = Map;
}

在b.js我有:

IMap

但是,当我运行节点b.js时,我得到:

function foo() {
console.log('Hello World!');
}

任何线索我做错了什么?

3 个答案:

答案 0 :(得分:1)

您需要在访问之前导出该功能。

a.js

function foo() {
console.log('Hello World!');
}

exports.foo = foo;

然后,您应该可以在b.js中访问它。

答案 1 :(得分:1)

a.js内:

module.exports = {
    foo: function() {
        console.log('Hello World!');
    }
}

然后在b.js

var a = require('./scenarios/a.js');
a.foo();

答案 2 :(得分:0)

我能够弄清楚这一点!需要定义module.exports。啊从一开始学习JavaScript的乐趣啊!

b.js是:

var a = require('./../scenarios/a.js');
a.foo();

a.js是:

function foo() {
    console.log('Hello World!');
}

module.exports = {
    foo: foo
}