dresscode-quantum
v1.1.3
Published
Экземпляр класса `Quantum.Quant` это объект с изменяющимся значением. По сути, это просто объект, хранящий в себе некое значение и имеющий методы `getValue()` и `setValue(value)`. Но есть пара важных свойств, делающих кванты удобными и полезными.
Downloads
14
Readme
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()
возвращает квант, содержащий размер видимой части страницы.