4

文字列リテラルとエクスポートを使用してClosureが変数の名前を変更できないようにするという概念はよく知っていますが、Closureが他のコード(私が作成しなかった)によってグローバル変数として使用される変数名を使用しないようにするにはどうすればよいですか?

以下の例は、クロージャのメンバー関数用に作成されました。

  function $() {
  var a;
  if(1 > N) {
        return-1
  }
  a = Math.pow(1 + Q, F);
  return .....
  }

上記は、jQueryがロードされると混乱します。

私はコマンドラインコンパイラを使用しています。これは私のコマンドラインです。

java -jarcompiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --formatting =pretty_print --output_wrapper PGS --js common.v2.0.raw.js --module common_min:1 --js page_code.raw.js --module page_code_min: 1:common_min

このオプションはこの問題を解決するために使用されていると思いましたoutput_wrapperが、その目的を誤解しているか、誤用しています。

TIA。

4

1 に答える 1

3

答えはexternsです。

Externは、外部コードでシンボルを定義します。それらには2つの主な目的があります。

  • コードがエラー/警告なしでそれらを呼び出すことができるように、外部シンボルの定義とタイプ情報を提供します。
  • コンパイラがコードの外部で定義されたシンボル名を使用しないようにします

あなたの場合、jQueryの既存のexternを含めることができます。プロジェクトcontribフォルダー内のメジャーバージョンごとに1つあります。

于 2012-11-14T21:55:13.297 に答える