text1 = /тут длинная строка. слова разделены пробелами/g,
text2 = /тут другая строка. слова разделены пробелами/g,
...
\w+\s+=\s\/(.*?)\/g,
'\1',
'тут длинная строка. слова разделены пробелами',
'тут другая строка. слова разделены пробелами',
...
Кладётё в массив:const texts = [
'тут длинная строка. слова разделены пробелами',
'тут другая строка. слова разделены пробелами',
...
];
const regexps = texts.map(text => toSpacedRegExp(text));
while (allTextNodes.nextNode()) {
let tmpnode = allTextNodes.currentNode;
let tmptxt = tmpnode.nodeValue;
regexps.forEach((regexp, index) => tmptxt = tmptxt.replace(regexp, replaceValue));
tmpnode.nodeValue = tmptxt;
}
const texts = [
{
from: 'тут длинная строка. слова разделены пробелами',
to: ''
}, {
from: 'тут другая строка. слова разделены пробелами',
to: 'другой текст'
},
...
];
const regexps = texts.map(({from, to}) => ({
from: toSpacedRegExp(from),
to
}));
regexps.forEach(({from, to}, index) => tmptxt = tmptxt.replace(from, to));
logDiv = () => {
console.log(this.firstValue/this.secondValue);
}
function bindClassMethods(cls) {
return class extends cls {
constructor(...args) {
super(...args);
let proto = this;
let keys = new Set();
do {
Object.getOwnPropertyNames(proto).forEach(
key => typeof this[key] === 'function'
&& key !== 'constructor'
&& keys.add(key)
);
proto = Object.getPrototypeOf(proto);
} while (
proto && proto !== Object.prototype
);
for(const key of keys) {
this[key] = this[key].bind(this);
}
}
}
}
const BindedCalculator = bindClassMethods(Calculator);
const calculator = new BindedCalculator(12, 3);
this
то, что стоит у него перед точкой. Это позволят экономить память и эффективно оптимизировать вызовы.bind
: const detached = object.method.bind(object);
, но по сути - это просто создание функции-обёртки. function cloneAndIncrement(element, ...attrs) {
const copy = element.cloneNode(true);
attrs.forEach(attr => {
const selector = `[${attr}]`;
const list = [...copy.querySelectorAll(selector)];
if(copy.matches(selector))
list.push(copy);
if(list.length === 0)
return;
list.forEach(node => {
let flag = false;
const text = node
.getAttribute(attr)
.replace(/\d+(?=$|\s)/, n => (flag = true) && ++n);
if(flag)
node.setAttribute(attr, text);
});
});
return copy;
}
const panel = document.querySelector('.panel.panel-default');
const clone = cloneAndIncrement(panel, 'id', 'href', 'aria-controls', 'aria-labelledby');
panel.after(clone);
order
. Условно так:
axios.post
по умолчаниюPromise<R = any>
даёт. Так что не должен тут ни на что жаловаться.Islam Ibakaev, почисти node_modules/.cache и рестартуй. Подозреваю глюк.)