How i can mark function as “private” to renaming it by Google Closure Compiler?

余生长醉 提交于 2019-12-25 04:51:41

问题


I have private function createSomething():

function Player(id) {

  /**
   *  Creates stuff
   *  @private
   */
  this.createSomething = function() {
    // do something good
  };
}

and I want to see the renamed function "createSomething()" after compiling the source with Google Closure Compiler. Yes, I know about ADVANCED_OPTIMIZATIONS but it is incompatible with jQuery and other libraries.


回答1:


The solution is to use a string literal to refer to the property.

function Player(id) {
  /**
   *  @private
   */
  this['createSomething'] = function() {
    // do something good
  };
}

This works because the compiler never renames string literals. But be careful.

You can compile your code with ADVANCED_OPTIMIZATIONS and still have you compatibility with other libraries. You'll need to read about externs and exports in the library documentation:

  • http://code.google.com/closure/compiler/docs/api-tutorial3.html
  • http://code.google.com/closure/compiler/docs/limitations.html



回答2:


Just use without this

function Player(id) {

  /**
   *  Creates stuff
   *  @private
   */
  createSomething = function() {
    // do something good
  };
}


来源:https://stackoverflow.com/questions/2065918/how-i-can-mark-function-as-private-to-renaming-it-by-google-closure-compiler

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!