Size: a a a

JavaScript — русскоговорящее сообщество

2020 March 19

Р

Русик in JavaScript — русскоговорящее сообщество
ds
Если у вас масштабный, сложная логика - попробуйте nestjs
Спасибо, можно пару вопросов в личке спросить?
источник
2020 March 20

AN

Alexander Nemirov in JavaScript — русскоговорящее сообщество
Как лучше добавить символы в строку?
Из "+79999999999" => "+7 (999) 999-99-99

Просто через цикл, на определённом шаге добавлять символы?
источник

RB

Random Balance in JavaScript — русскоговорящее сообщество
Alexander Nemirov
Как лучше добавить символы в строку?
Из "+79999999999" => "+7 (999) 999-99-99

Просто через цикл, на определённом шаге добавлять символы?
Удалить через регулярку всё кроме цифр.
источник

RB

Random Balance in JavaScript — русскоговорящее сообщество
А, не так понял, тебе наоборот надо.
источник

VD

Viktar Daniliuk in JavaScript — русскоговорящее сообщество
Alexander Nemirov
Как лучше добавить символы в строку?
Из "+79999999999" => "+7 (999) 999-99-99

Просто через цикл, на определённом шаге добавлять символы?
Маску применить
источник

RB

Random Balance in JavaScript — русскоговорящее сообщество
Если шаблон всегда один то так же через регулярку можно.
источник

RB

Random Balance in JavaScript — русскоговорящее сообщество
Alexander Nemirov
Как лучше добавить символы в строку?
Из "+79999999999" => "+7 (999) 999-99-99

Просто через цикл, на определённом шаге добавлять символы?
"+79999999999".replace(/\+(\d)(\d{3})(\d{7})/, "+$1 ($2) $3");
источник

AN

Alexander Nemirov in JavaScript — русскоговорящее сообщество
Random Balance
"+79999999999".replace(/\+(\d)(\d{3})(\d{7})/, "+$1 ($2) $3");
Ну да, думаю самый просто вариант
источник

A

Alex Radionov in JavaScript — русскоговорящее сообщество
Ребят всем доброго утра/ночи
вопрос в студию. Как мы можем реализовать привязку к лексическому this не используя стрелочную функцию, и не прибегая к подмене  self = this ?
Пример:
function foo() {
 var self = this; // лексический захват `this`
 setTimeout( function(){
   console.log( self.a );
 }, 100 );
}

var obj = {
 a: 2
};

foo.call( obj ); // 2
источник

АК

Артем Куликов in JavaScript — русскоговорящее сообщество
call вторым параметром принимает ,this
источник

АК

Артем Куликов in JavaScript — русскоговорящее сообщество
Но call сразу выполняет, если нужно выполнить когда-то потом то лучше bind
источник

A

Alex Radionov in JavaScript — русскоговорящее сообщество
спасибо
источник

АК

Артем Куликов in JavaScript — русскоговорящее сообщество
Только в твоём случае надо foo.call(foo, this, obj)
источник

A

Alex Radionov in JavaScript — русскоговорящее сообщество
Артем Куликов
Только в твоём случае надо foo.call(foo, this, obj)
в данной функции, мы говорим, контекст выполнения foo есть foo, передаем в foo аргументы  obj, this. И результат работы ф-ии говорит что не нашел a
function foo() {
 setTimeout( function(){
   console.log( this.a );
 }, 100 );
}

var obj = {
 a: 2
};

foo.call( foo, obj, this ); // undefined
источник

АК

Артем Куликов in JavaScript — русскоговорящее сообщество
Alex Radionov
в данной функции, мы говорим, контекст выполнения foo есть foo, передаем в foo аргументы  obj, this. И результат работы ф-ии говорит что не нашел a
function foo() {
 setTimeout( function(){
   console.log( this.a );
 }, 100 );
}

var obj = {
 a: 2
};

foo.call( foo, obj, this ); // undefined
Извиняюсь, спросони дезинформировал. Через call или bind мы к ф-ции привязываем контекст первым параметром, а вот вторым передаем аргументы для ф-ии. foo.call(this, obj)
Ещё раз извиняюсь за дезу
источник

A

Alex Radionov in JavaScript — русскоговорящее сообщество
Артем Куликов
Извиняюсь, спросони дезинформировал. Через call или bind мы к ф-ции привязываем контекст первым параметром, а вот вторым передаем аргументы для ф-ии. foo.call(this, obj)
Ещё раз извиняюсь за дезу
Я так конечно тоже пробовал, почитав о call
источник

АК

Артем Куликов in JavaScript — русскоговорящее сообщество
Так у тебя вместо this надо объект obj, ну а параметр не нужен остальнов foo менять не надо)
источник

A

Alex Radionov in JavaScript — русскоговорящее сообщество
Артем Куликов
Так у тебя вместо this надо объект obj, ну а параметр не нужен остальнов foo менять не надо)
Мне кажется ты не учитываешь особенности работы setTimeout, извиняюсь заранее за возможные неточности в формулировке, если что поправьте, при отрабатывании setTimeout берет this из глобалной области видимости, и задача стоит сделать так чтобы жестко привязать, как это делает стрелочная функция отрабатывание setTimeout к внешнему лексическому окружению, которое равно блоку foo, куда мы передали контекст obj
источник

A

Alex in JavaScript — русскоговорящее сообщество
Alex Radionov
Ребят всем доброго утра/ночи
вопрос в студию. Как мы можем реализовать привязку к лексическому this не используя стрелочную функцию, и не прибегая к подмене  self = this ?
Пример:
function foo() {
 var self = this; // лексический захват `this`
 setTimeout( function(){
   console.log( self.a );
 }, 100 );
}

var obj = {
 a: 2
};

foo.call( obj ); // 2
Что за бред? 🤨
источник

A

Alex Radionov in JavaScript — русскоговорящее сообщество
Alex
Что за бред? 🤨
Давай конструктивно, что не "так" и как нужно сделать чтобы было "так")
источник