Цитата:
(это официальная дока 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:07. |