gpt4 book ai didi

javascript - 如何在 JavaScript 中导出和导入两个不同的函数对象?

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:36 24 4
gpt4 key购买 nike

我使用 Jasmine-Node 来测试 Javascript 代码。

如何导出两个不同的函数对象(例如 Confusions1 和 Confusions2),以便两者都可以在 Jasmine-Node 测试文件中使用?

我的尝试如下:

// confusions.js
var Confusions1 = function() {};

Confusions1.prototype.foo = function(num) {
// keep track of how many times `foo` is called
this.count++;
}

module.exports = Confusions1;

// second function object

var Confusions2 = function() {};

Confusions2.prototype.foo = function() {
var a = 2;
this.bar();
};

Confusions2.prototype.bar = function() {
return this.a;
}

module.exports = Confusions2;

还有我的 Jasmine 测试文件:

// confusions.spec.js

var Confusion = require('./confusions.js');

describe("chapter 1, common misconception ", function() {
describe("to assume `this` refers to the function itself: ", function() {
var confusion = new Confusion();

// some test code omitted


});

describe("to assume `this` refers to the function's scope", function() {
var confusion = new Confusion();

// test code omitted

});
});

我想要它,以便 confusions.js 中的 Confusions1 和 Confusions2均可在 confusions.spec.js 内的两个嵌套描述 block 中使用

我假设在需要文件 var Confusion = require('./confusions.js'); 之后我必须以某种方式初始化不同的对象类似 var confusion1 = new Confusions1(); var confusion2 = new Confusions2();但究竟如何(不将两个对象拆分为两个单独的文件)?

最佳答案

因此,您希望有一个行为类似于导出值容器的模块,换句话说,您希望导出两个函数:

// foo.js
var Confusion1 = function() {}
var Confusion2 = function() {}
...
exports.Confusion1 = Confusion1
exports.Confusion2 = Confusion2

无论你在哪里需要这个模块,你都可能需要这样的东西:

// bar.test.js
var confusions = require('path-to-the-foo-file')
console.log(confusions.Confusion1)
console.log(confusions.Confusion2)

此外,您似乎应该检查您正在使用的模块系统的一般工作方式,请检查以下答案:module.exports vs exports in Node.js

关于javascript - 如何在 JavaScript 中导出和导入两个不同的函数对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40589400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com