Цитата:
(это официальная дока closure compiler) |
kobezzza, а почему не используешь объект для передачи параметров?
|
Цитата:
https://github.com/kobezzza/Collecti...%D 0%BE%D0%B2 Цитата:
{
filter,
id,
mult,
count,
from,
startIndex,
endIndex,
reverse,
inverseFilter,
notOwn,
live,
useForIn,
vars,
context
}
т.е. использую. Для внутренних вызовов юзается вызов с перечислением параметров, т.к. это работает быстрее, а для конечного использования конечно можно использовать объекты-параметры, если нужно. |
Цитата:
Plovr тоже ничё так :) |
kobezzza, не могу понять как сделать что класс не переименовывало, пробывал ставить @constructor но не помогает
(function () {
/**
@constructor - пробывал так
*/
function constr() {// сохранить имя constr
}
window.Constr = constr
}())
Цитата:
|
Цитата:
Во первых: http://javascript.ru/optimize/google...d-optimization Во вторых: @expose https://developers.google.com/closur...s-for-compiler Ну и в третьих просто глянул бы, как сделано у меня: https://github.com/kobezzza/Collecti.../core/core.jsn (this.Collection; и this.$C; - это для поддержки автокомплита в WebStorm) |
Цитата:
|
Цитата:
вот как у тебя, так и надо. (про строковые имена): global['Collection'] |
Цитата:
Либа жмётся и нужные методы внешние, а все "издержки" 100% закрываются gzip, т.е. нет никакой разницы. Если я жму либу вместе с проектом, то пред сжатием я дополнительно вырезаю @expose (replace(/@expose/gm, '') в скрипте сборки) и всё (или написать файл экстерн, но это даст хуже сжатие). А вот если я юзаю экспорт как ['...'], то при сжатии с проектом уже без файла экстерна не обойтись, и сжатие будет хуже. *** Если я пишу ['...'] то это означает что всегда-всегда это свойство должно быть с таким именем. Вот пример: https://github.com/kobezzza/Collecti...rs.storage.jsn Свойство Collection.Drivers.Storage должно быть доступно при использовании либы как "внешнего скрипта", но при сжатии вместе с проектом должно сжиматься, поэтому я юзаю @expose. А свойства 'indexedDB', 'localStorage' и т.д. должны быть такими всегда, поэтому я экспортирую их в кавычках. Например: global['Collection'] сделан так не спроста, т.к. Collection фигурирует в генерируемых скриптах в рантайме, т.е. всегда должны быть именно таким. Разумеется я читал: Цитата:
|
kobezzza,
![]() Генерирует, по-моему, такой код: goog.exportProperty( %OBJECT% , "%PROP_NAME%", %PROP_VAL%); Исходник:
/**
* Exports a property unobfuscated into the object's namespace.
* ex. goog.exportProperty(Foo, 'staticFunction', Foo.staticFunction);
* ex. goog.exportProperty(Foo.prototype, 'myMethod', Foo.prototype.myMethod);
* @param {Object} object Object whose static property is being exported.
* @param {string} publicName Unobfuscated name to export.
* @param {*} symbol Object the name should point to.
*/
goog.exportProperty = function(object, publicName, symbol) {
object[publicName] = symbol;
};
Использование: /** @export */ MYOBJ.MYPROP = 'FOO' Цитата:
|
| Часовой пояс GMT +3, время: 08:12. |