簡體   English   中英

如何將模塊模式 function 導出到另一個 JavaScript 文件

[英]How can I export module pattern function to another JavaScript file

我有兩個 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);
        }
    }
}

第二個文件:testCalculator.js

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);
        }
    }
}

我必須列出所有要導出的 function 名稱嗎?

是的,你必須導出所有你想稍后導入的東西。 或者您可以導出一個 object 以及您需要的所有代碼。

我需要使用“import”還是“require()”

對於 Node.js, require是常見的做法。 最新的 Node.JS 支持import構造,但至少目前,使用 require 更可取。

對於瀏覽器,您將使用import符號。

而您的 function 不是經典構造函數,請查看class符號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM