2016-12-08 8 views
1

私はES6で私のreactjsアプリケーションを移行しています。これは、グローバル変数を古い方法で定義し、エクスポートを行わない外部javascriptを使用していました。私は同じことを変更して維持する方法はありません。 そのファイル内の関数を参照すると、キーワードvar/constなしで定義された関数に対してuncaught referenceerrorが得られます。ES6アプリケーションの第三者javascriptのキャッチされていない参照エラー

この種のファイルをES6で使用する正しい方法は何ですか?

たとえば、古いサードパーティ製のjsファイルには次のコードが含まれています。私はブラウザでの実行中にClassicClientの捕らえられていない参照エラーを取得します。ない

ClassicClient = function(x, y){ 
    return x+y; 
} 
+0

私はダウン投票の理由をご存知ですか?私のアプリの外部にあるライブラリの本物の問題です。 –

+0

このファイルは翻訳されていませんが、第三者のライブラリが関数や変数を 'var 'なしでどのように定義できるかはわかりません。 – nicovank

+1

ここではES5とES6の間に何も違いはありません。蒸留されたES6コードが実行される前にグローバル関数が定義されていれば、大丈夫です。独自のページの前に外部JSファイルを埋め込みますか? – Timo

答えて

0

あなたはおそらくES6からES5にtranspileし、また、いくつかのモジュールバンドラ(WebPACKの?)ために何か(バベルを?)を使用しているので、あなたのバンドルが"use strict"を持っている、それは厳格なモードで実行すること、プレフィックスなしでグローバル変数を使用することができます。window.以下を参照してください:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode#Converting_mistakes_into_errors

特定のモジュールまたはグローバルに厳密モードを無効にすることが可能かどうかはわかりません。確認:How to remove global "use strict" added by babel

+0

はい、状況に見えます。これらのファイルは何もエクスポートされず、内部の変数/関数を参照することはできません。私は今、同じものの使用を中止しました。あなたの答える時間を感謝します。 –

関連する問題