如何将模块模式函数导出到另一个JavaScript文件
我有两个JavaScript文件,希望将带有模块模式的文件导出到另一个文件。对于带有模块模式的文件,我只想导出公共成员。当我尝试执行测试时,它说“计算器不是构造函数” 文件:calculator.js如何将模块模式函数导出到另一个JavaScript文件,javascript,Javascript,我有两个JavaScript文件,希望将带有模块模式的文件导出到另一个文件。对于带有模块模式的文件,我只想导出公共成员。当我尝试执行测试时,它说“计算器不是构造函数” 文件:calculator.js var Calculator = function(){ var total = null; return { add: function(x,y){ total = x + y; }, ge
var Calculator = function(){
var total = null;
return {
add: function(x,y){
total = x + y;
},
getTotal: function(){
return total;
};
display: function(){
console.log(total);
}
}
}
const calculatorObj = require('calculator.js');
describe("Calculator test suite", function(){
var calculatorObj = new Calculator();
it('Verify sum method', function() {
try{
calculatorObj.add(5,5);
//assertive
expect(10, calculatorObj.getTotal());
}
catch(err)
{
alert(err);
}
});
});
第二个文件:testCalculator.js
var Calculator = function(){
var total = null;
return {
add: function(x,y){
total = x + y;
},
getTotal: function(){
return total;
};
display: function(){
console.log(total);
}
}
}
const calculatorObj = require('calculator.js');
describe("Calculator test suite", function(){
var calculatorObj = new Calculator();
it('Verify sum method', function() {
try{
calculatorObj.add(5,5);
//assertive
expect(10, calculatorObj.getTotal());
}
catch(err)
{
alert(err);
}
});
});
它不起作用,因为您需要在消费之前导出某些内容 添加此代码以使其正常工作
module.exports = function(){
var total = null;
return {
add: function(x,y){
total = x + y;
},
getTotal: function(){
return total;
};
display: function(){
console.log(total);
}
}
}
我必须列出所有要导出的函数名吗 是的,您必须导出以后要导入的所有内容。或者,您可以导出一个对象以及所需的所有代码 我是否需要使用“导入”或“要求()” 对于Node.js,
require
是常见的做法。最新的Node.JS支持导入
构造,但至少目前,最好使用require
对于浏览器,您将使用import
符号
而且你的函数不是一个经典的构造函数,请看一下符号,它不起作用,因为你需要在使用它之前导出一些东西 添加此代码以使其正常工作
module.exports = function(){
var total = null;
return {
add: function(x,y){
total = x + y;
},
getTotal: function(){
return total;
};
display: function(){
console.log(total);
}
}
}
我必须列出所有要导出的函数名吗 是的,您必须导出以后要导入的所有内容。或者,您可以导出一个对象以及所需的所有代码 我是否需要使用“导入”或“要求()” 对于Node.js,
require
是常见的做法。最新的Node.JS支持导入
构造,但至少目前,最好使用require
对于浏览器,您将使用import
符号
而且你的函数不是一个经典的构造函数,请看一下符号你忘了导出计算器:
module.exports=function(){
我必须列出所有要导出的函数名吗?在“testCalculator.js”文件中,我需要使用“import”还是“require()”我已经更新了答案你忘了导出计算器:module.exports=function(){
我必须列出我要导出的所有函数名吗?在“testCalculator.js”文件中,我是否需要使用“import”或“require()”我已经更新了答案当我只有一个JavaScript填充“calculator”时,我可以执行以下操作“让cal=new Calculator();cal.add(5,5);cal.display();当你有一个文件时,你不需要进行导入/导出。你可以自由地使用所有编写的代码。但这并不是什么好事,真的。有10000行的文件是一个情绪大球。谢谢。按照你的建议,我可以在调试代码时看到公共成员,但不知何故intelliSense不会显示成员。使用typescript或jsDoc如果你想拥有良好的智能感知,谢谢,我会查看它们。不过我使用的是Visual Studio代码。当我只有一个JavaScript填充“calculator”时,我可以执行类似“let cal=new calculator();cal.add(5,5);cal.display()的操作;当你有一个文件时,你不需要进行导入/导出。你可以自由地使用所有编写的代码。但这并不是什么好事,真的。有10000行的文件是一个情绪大球。谢谢。按照你的建议,我可以在调试代码时看到公共成员,但不知何故intelliSense不会显示成员。使用typescript或js博士,如果你想拥有良好的智能感知,谢谢,我会检查它们。不过我使用的是Visual Studio代码。