Тема: Collection v4
Показать сообщение отдельно
  #6 (permalink)  
Старый 03.02.2014, 19:00
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от kobezzza
Ну это сжатие в продвинутом режиме closure compiler, для этого нужно спецом под него код писать.
а понял, просто не знал что он так называеться. Под него довольно сложно писать

Сообщение от kobezzza
Как не использую? как раз его и использую) Если передал массив, строку или массивоподобный объект (например HTMLCollection) то буит простой for, для остальных for in
а, твоя реализация быстрее forEach и медленее for?)

вопрос по продвинутом сжатию, к примеру есть код

(function (undef) {

    var local_name = "cache_module_",
        v_name = local_name + "cache_version";

    function cache(params) {
        this.storage = sessionStorage;
        this.isUse = false;

        if(params.isLocal) {
            this.storage = localStorage;
        }
    }

    cache.prototype.get = function (id) {
        if(!this.isUse) return;

        try{
           var obj = this.storage.getItem(local_name + id)
           return JSON.parse(obj);
        } catch(ignore) {}
    };

    cache.prototype.set = function(key, data) {
        if(!this.isUse) return;

        setTimeout(function() {
            this.storage.setItem(local_name + key, JSON.stringify(data));
        }.bind(this), 0)
    };

    cache.prototype.removeItem = function(key) {
            this.storage.removeItem(local_name + key);
    };

    cache.prototype.clear = function () {
        var storage = this.storage, key;

        for(var i = 0; i < storage.length; i++) {
            key = storage.key(i);

            if(~key.indexOf(local_name))
                storage.removeItem(key);
        }
    }

    cache.prototype.init = function(parent, initObj) {
        var v;

        if(arguments.length != 2 ||
            initObj.cacheVersion === undef) return;

        if(v = this.get(v_name) &&
            v != initObj.cacheVersion) {
                this.clear();
        }

        this.set(v_name, initObj.cacheVersion);
        this.isUse = true;
    };

    Object.defineProperty(cache.prototype, "name", {
        value: "cache",
        writable: false
    });

    window.Cache_module = cache;

}());
// почему из него убираються прототипы и остаеться

(function(){function b(){}Object.defineProperty(b.prototype,"name",{value:"cache",writable:!1});window.a=b})();


это из за того что они явно не используеться в коде?
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием