ES6导出覆盖功能

时间:2015-09-26 03:44:44

标签: javascript ecmascript-6

如何导出此覆盖功能,以便导入模块可以检查是否已调用该函数?

// util.js
export function isPageload() {
  return (!!(isPageload = function() { return false; }));
}

当我用Babel编译它时,我收到此错误:

Uncaught TypeError: (0 , _util2.default) is not a function

这是ES5的等价物:

var isPageload = function() {
  return (!!(isPageload = function() { return false; }));
}

console.log(isPageload()); // true
console.log(isPageload()); // false

1 个答案:

答案 0 :(得分:29)

错误中的.default表明你正在做

import isPageload from 'foo';

当你可能想要

import {isPageload} from 'foo';

因为

export function isPageload() {

创建命名导出,而不是默认导出,默认导出实时绑定更新currently does not work in Babel

然而,你对这个问题的处理似乎有点迂回。为什么不

let loaded = true;
export isPageLoaded(){
    let state = loaded;
    loaded = false;
    return loaded;
}