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 回答