2015-09-26 16 views
11

インポートモジュールが関数が呼び出されたかどうかを確認できるように、この上書き関数をどのようにエクスポートできますか?ES6エクスポート上書き機能

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

私はバベルと、私はこのエラーを取得することをコンパイルします。ここでは

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 
+0

は、 '= falseをロード聞かせくださいません;'そして '=真のロード;'関数本体で。 – zerkms

+0

もっと関連して、なぜあなたはこれを書いていますか?エクスポートに同じ関数名が必要なのはなぜですか? –

+0

@ Mike'Pomax'Kamermans現在の構文では、ES5バージョンと同じように、元の関数の代わりにfalseを返す関数にエクスポートを更新します。 – loganfsmyth

答えて

26

エラーで.defaultはそれを明確にあなたがしていることになり行うこと

import isPageload from 'foo'; 

export function isPageload() { 

という名前の輸出ではなく、デフォルトのエクスポート、およびライブ結合currently does not work in Babelを更新するデフォルトのエクスポートを作成するので、あなたはおそらく

import {isPageload} from 'foo'; 

をしたいです。

しかし、この問題に対するあなたのアプローチはやや丸見えです。なぜ

+0

ええ、括弧が足りないと、そのトリックがありました。説明してくれてありがとう。 – cantera

+1

これは金です。ありがとう。 – shongololo

関連する問題