猿问

JavaScript 在缩小时丢失方法

我有一个简单的 JavaScript 文件,如下所示:


module.exports = function () {

    return {

        clearCookies: clearCookies,

        setCookie: setCookie,

        getCookie: getCookie

    };

};


function getCookie(name) {

    var i, x, y, ARRcookies = document.cookie.split(';');

    for (i = 0; i < ARRcookies.length; i++) {

        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf('='));

        y = ARRcookies[i].substr(ARRcookies[i].indexOf('=') + 1);

        x = x.replace(/^\s+|\s+$/g, '');

        if (x === name) {

            return unescape(y);

        }

    }

    return '';

}


function setCookie(name, value, expiresInDays) {

    var expiryDate = new Date();

    expiryDate.setDate(expiryDate.getDate() + expiresInDays);

    var cookieValue = escape(value) + ((expiresInDays === null) ? '' : '; expires=' + expiryDate.toUTCString());

    document.cookie = name + '=' + cookieValue;

}


function clearCookies() {

    setCookie('token', '', 0);

    setCookie('quoteDetails', '', 0);

    location.href = 'index.html';

}

然后在我的main.js我试图这样做:


var { checkPostCode } = require('epc_common');

var { getCookie, setCookie } = require('epc_cookies');


$('#quotemebutton').click((e) => {

    e.preventDefault();


    let storedToken = getCookie('token');


    /* ---- remove for brevity ---- */

});

我正在使用Bable来允许我使用 es6,它会生成一个缩小的文件。问题是它无法调用getCookie方法。


我得到的错误是:


未捕获的类型错误:a 不是函数


我会认为当它缩小我的代码时,它会缩小 require 以及调用方法?


任何帮助将不胜感激。


慕勒3428872
浏览 215回答 1
1回答

波斯汪

与module.exports = function () {&nbsp; &nbsp; return {&nbsp; &nbsp; &nbsp; &nbsp; clearCookies: clearCookies,&nbsp; &nbsp; &nbsp; &nbsp; setCookie: setCookie,&nbsp; &nbsp; &nbsp; &nbsp; getCookie: getCookie&nbsp; &nbsp; };};您有一个export,它是一个函数,在调用时返回一个对象。但是在var { getCookie, setCookie } = require('epc_cookies');您试图在不调用返回的函数的情况下检索getCookie和setCookie函数require。只导出普通对象,在导出的文件底部:module.exports = {&nbsp; &nbsp; clearCookies: clearCookies,&nbsp; &nbsp; setCookie: setCookie,&nbsp; &nbsp; getCookie: getCookie};由于看起来您使用的是 ES6,因此您可以使用速记属性名称:module.exports = {&nbsp; &nbsp; clearCookies,&nbsp; &nbsp; setCookie,&nbsp; &nbsp; getCookie};
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答