Gmail Надстройка экспортируемых функций
Недавно, когда я искал средства для повышения производительности моего дополнения Gmail, я натолкнулся на определенный вопрос, в котором отмечалось, что:
Обратите внимание, что библиотеки и глобальные переменные оцениваются каждый раз, когда ваше дополнение запускает какую-либо функцию
Я начал тестировать его и заметил, что во время отладки this
свойство функции, кроме глобальных и библиотечных объектов, содержащихся module
а также exports
свойства, которые содержат все экспортируемые (и, возможно, даже все) функции. Я использую Typescript, поэтому экспорт - это способ достижения модульности для меня, но, насколько я знаю, clasp
на самом деле не компилирует мой Typescript.
То есть я хотел бы знать следующие темы:
1) Оцениваются ли действительно экспортированные функции? Что это значит в частности?
2) Какие функции точно оцениваются? Все или только экспортированные? Какие функции должны быть экспортированы?
3) Применяются ли эти правила к вызовам вложенных функций? Скажи, я выполняю map
функция над массивом. Оценивается ли контекст при каждом вызове функции?
Кроме того, мне бы очень хотелось получить общий совет о том, как улучшить производительность моего дополнения. Есть ли какие-либо руководства, кроме http://developers.google.com/?
Заранее спасибо.