0

私はJohn Resigに触発された JavaScript 継承を使用しており、私のライブラリ コードは次のようになります。

var Person = Class.extend({
  /** @private */
  _dancing: null,

  /** @private */
  _init: function(isDancing){
    this._dancing = isDancing;
  },

  /** @public */ 
  dance: function(){
    return this._dancing;
  }
});

var obj = new Person();
obj.dance();

アンダースコアで始まるクラス メソッドのみをマングルし、すべてのパブリック メソッドを ADVANCED_OPTIMIZATIONS に保存する最善の方法は何ですか。

次の出力を取得する必要があります。

var a = Class.extend({a:null, b:function(b) {
  this.a = b;
}, dance:function() {
  return this.a;
}});
new a;
a.dance();
4

1 に答える 1

0

これを行う「最も簡単な」方法は、コンパイラのカスタムコーディング規則を作成し (コンパイラを変更する必要があります)、「エクスポート」規則を「_」で始まらないものに変更することです。

見る:

http://closure-compiler.googlecode.com/svn/trunk/src/com/google/javascript/jscomp/GoogleCodingConvention.java

およびその「isExported」メソッド。

于 2013-10-16T20:50:39.273 に答える