dresscode-quantum v1.1.3
Quantum.Quant
Экземпляр класса Quantum.Quant это объект с изменяющимся значением. По сути, это просто объект, хранящий в себе некое значение и имеющий методы getValue() и setValue(value). Но есть пара важных свойств, делающих кванты удобными и полезными.
Метод when(fn, ctx) принимает функцию трансформации значения исходного кванта и возвращает новый квант, который будет меняться синхронно с исходным.
var quant1 = new Quantum.Quant(5);
var quant2 = quant1.when(funciton(value) {
return value * value;
});
console.log(quant2.getValue()); // 25
quant1.setValue(6);
console.log(quant2.getValue()); // 36Если значением кванта установить другой квант, то значением первого будет считаться значение вложенного.
var quant1 = new Quantum.Quant(5);
var quant2 = new Quantum.Quant(quant1);
console.log(quant2.getValue()); // 5Всё это позволяет строить синхронно обновляемые цепочки квантов.
Ещё методы кванта
quant.whenNotNull(fn, ctx)вызываетfnтолько если значение исходного кванта неnullи неundefined.quant.whenNull(fn, ctx)вызываетfnтолько если значение исходного квантаnullилиundefined, остальные значения передаются в новый квант без изменений.quant.spread(fn, ctx)деструктурирует значение-массив кванта в аргументы функцииfn.quant.touch()принудительно вызывает процедуру обновления значения. Пригодится, если в кванте лежит массив или объект, внутренности которого изменились, но ссылка на него осталась та же.quant.ifNotNull(fn, ctx)вызываетfnи передаёт в него значение кванта, если это значение неnullи неundefined.
Полезные функции
Quantum.combine(array)принимает массив квантов и возвращает квант, зависящий от всех квантов из массива.Quantum.debounce(quant, delay)возвращает квант, в котором дебаунсится значение исходного кванта.Quantum.DOM.getDocumentScroll()возвращает квант, содержащий позицию скрола документа.Quantum.DOM.getViewportSize()возвращает квант, содержащий размер видимой части страницы.
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago