Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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文件_Javascript - Fatal编程技术网

如何将模块模式函数导出到另一个JavaScript文件

如何将模块模式函数导出到另一个JavaScript文件,javascript,Javascript,我有两个JavaScript文件,希望将带有模块模式的文件导出到另一个文件。对于带有模块模式的文件,我只想导出公共成员。当我尝试执行测试时,它说“计算器不是构造函数” 文件:calculator.js var Calculator = function(){ var total = null; return { add: function(x,y){ total = x + y; }, ge

我有两个JavaScript文件,希望将带有模块模式的文件导出到另一个文件。对于带有模块模式的文件,我只想导出公共成员。当我尝试执行测试时,它说“计算器不是构造函数”

文件:calculator.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);
        }
    });
});
第二个文件: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代码。