flo-utils
Version:
33 lines (28 loc) • 748 B
JavaScript
/**
* 函数拥有了单个操作或者批量操作元素的能力
*
* @param {*} fn
*
* @example
*
* const setStyle = useBatch((el, key, value) => {
el.style[key] = value;
});
setStyle([...items], 'color', 'red'); // 拥有了批量处理能力
*
*/
function useBatch(fn) {
var _this = this;
return function (subject) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
if (Array.isArray(subject)) {
return subject.map(function (s) {
return fn.call.apply(fn, [_this, s].concat(args));
});
}
return fn.call.apply(fn, [_this, subject].concat(args));
};
}
export default useBatch;