Как я могу пометить функцию как "частную", чтобы переименовать ее компилятором Google Closure? - PullRequest
0 голосов
/ 14 января 2010

У меня есть приватная функция createSomething ():

function Player(id) {

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

и я хочу увидеть переименованную функцию "createSomething ()" после компиляции исходного кода с помощью Google Closure Compiler. Да, я знаю о ADVANCED_OPTIMIZATIONS, но он несовместим с jQuery и другими библиотеками.

Ответы [ 2 ]

3 голосов
/ 10 октября 2011

Решением является использование строкового литерала для ссылки на свойство.

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

Это работает, потому что компилятор никогда не переименовывает строковые литералы. Но будьте осторожны.

Вы можете скомпилировать свой код с помощью ADVANCED_OPTIMIZATIONS и при этом поддерживать совместимость с другими библиотеками. Вам нужно прочитать о externs и exports в документации библиотеки:

0 голосов
/ 01 февраля 2010

Просто используйте без это

function Player(id) {

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