Как я могу экспортировать функцию шаблона модуля в другой файл JavaScript - PullRequest
0 голосов
/ 02 августа 2020

У меня есть два файла JavaScript, и я хочу экспортировать файл с шаблоном модуля в другой файл. Файл с шаблоном модуля, я хотел бы экспортировать только члены publi c. Когда я пытаюсь выполнить тест, он говорит, что «Калькулятор не является конструктором».

файл: калькулятор. 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);
        }
    });
});

1 Ответ

2 голосов
/ 02 августа 2020

Это не работает, потому что вам нужно что-то экспортировать, прежде чем использовать.

Добавьте этот код, чтобы он работал

module.exports = function(){
    var total = null;

    return {      
        add: function(x,y){
            total = x + y; 
        },

        getTotal: function(){
            return total;
        };

        display: function(){
            console.log(total);
        }
    }
}

мне нужно перечислить все имена функций, которые я хочу экспортировать?

Да, вам нужно экспортировать все, что вы хотите импортировать позже. Или вы можете экспортировать один объект со всем необходимым кодом.

нужно ли мне использовать «import» или «require ()»

Для Node.js, require - обычная практика. Последняя версия Node.JS поддерживает конструкцию import, но, по крайней мере, на данный момент, использование require предпочтительнее.

Для браузеров вы будете использовать нотацию import.

И ваша функция не классический конструктор, обратите внимание на класс обозначение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...