Size: a a a

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

2019 October 31

D

Danila in JavaScript — русскоговорящее сообщество
Looch
Вручную просто мутировать результат, но тогда нужно парится о том что в массиве могут быть дырки
источник

L

Looch in JavaScript — русскоговорящее сообщество
Вроде как он не всегда делает инерцию в отличии от corejs имплементации
источник

D

Danila in JavaScript — русскоговорящее сообщество
Это всё зависит от конкретной реализации, как я и говорил - поэтому, наверное, будет лучше сделать самым очевидным методом, а оптимизировать когда (если) возникнут проблемы
источник

D

Danila in JavaScript — русскоговорящее сообщество
Для меня самым очевидным является рест, и он, внезапно, оказался и самым быстрым на хроме, причём с большим отрывом от сплайса в 50 раз почти
источник

D

Danila in JavaScript — русскоговорящее сообщество
Но в реальности всё будет зависеть ещё и от размера оригинального массива, вставляемого массива итд
источник

L

Looch in JavaScript — русскоговорящее сообщество
ты наверное перепустал splice и slice,  splice это мутирующий метод,аля push только в нужное место + удалять может
источник

D

Danila in JavaScript — русскоговорящее сообщество
Looch
ты наверное перепустал splice и slice,  splice это мутирующий метод,аля push только в нужное место + удалять может
Нет, ничего я не путал
источник

L

Looch in JavaScript — русскоговорящее сообщество
тогда не понял при чем тут рест ?
источник

D

Danila in JavaScript — русскоговорящее сообщество
Я про вставку элементов в произвольное место массива
источник

AP

Anton Permyakov in JavaScript — русскоговорящее сообщество
Danila
Нет, ничего я не путал
перепутал спред и рест
источник

D

Danila in JavaScript — русскоговорящее сообщество
Ой, всё
источник

D

Danila in JavaScript — русскоговорящее сообщество
Согласен, да
источник

АМ

Александр Матчин in JavaScript — русскоговорящее сообщество
Здравствуйте! Зачем в данном коде писать функцию обертку внутри сеттаймаут, если код работает и просто с указанием user.sayHi(), т.е.
let user = {
 firstName: "Вася",
 sayHi() {
   alert(Привет, ${this.firstName}!);
 }
};
setTimeout(function() { //Зачем эта функция-обертка нужна здесь?
 user.sayHi(); // Привет, Вася!
}, 1000);

Почему нельзя
setTimeout(
 user.sayHi(); // Привет, Вася!
, 1000);
источник

L

Looch in JavaScript — русскоговорящее сообщество
короче для встаки одного элемента пофиг 🙂
источник

AP

Anton Permyakov in JavaScript — русскоговорящее сообщество
Александр Матчин
Здравствуйте! Зачем в данном коде писать функцию обертку внутри сеттаймаут, если код работает и просто с указанием user.sayHi(), т.е.
let user = {
 firstName: "Вася",
 sayHi() {
   alert(Привет, ${this.firstName}!);
 }
};
setTimeout(function() { //Зачем эта функция-обертка нужна здесь?
 user.sayHi(); // Привет, Вася!
}, 1000);

Почему нельзя
setTimeout(
 user.sayHi(); // Привет, Вася!
, 1000);
можно, но без скобок после sayHi
источник

L

Looch in JavaScript — русскоговорящее сообщество
Александр Матчин
Здравствуйте! Зачем в данном коде писать функцию обертку внутри сеттаймаут, если код работает и просто с указанием user.sayHi(), т.е.
let user = {
 firstName: "Вася",
 sayHi() {
   alert(Привет, ${this.firstName}!);
 }
};
setTimeout(function() { //Зачем эта функция-обертка нужна здесь?
 user.sayHi(); // Привет, Вася!
}, 1000);

Почему нельзя
setTimeout(
 user.sayHi(); // Привет, Вася!
, 1000);
можно просто без вызова
источник

D

Danila in JavaScript — русскоговорящее сообщество
Александр Матчин
Здравствуйте! Зачем в данном коде писать функцию обертку внутри сеттаймаут, если код работает и просто с указанием user.sayHi(), т.е.
let user = {
 firstName: "Вася",
 sayHi() {
   alert(Привет, ${this.firstName}!);
 }
};
setTimeout(function() { //Зачем эта функция-обертка нужна здесь?
 user.sayHi(); // Привет, Вася!
}, 1000);

Почему нельзя
setTimeout(
 user.sayHi(); // Привет, Вася!
, 1000);
Потому что это неравнозначные конструкции. Во втором случае ты передаёшьь в таймаут уже результат вызова функции, а вызовется она мгновенно
источник

АМ

Александр Матчин in JavaScript — русскоговорящее сообщество
Anton Permyakov
можно, но без скобок после sayHi
Если без скобок, то тераяем контекст user, и this будет undefined
источник

D

Danila in JavaScript — русскоговорящее сообщество
А вот если убрать скобки и передать не результат вызова а саму функцию, user.sayHi, то sayHi будет вызвана не в контексте user, а в контексте таймаута, и там this будет равен undefined
источник

D

Danila in JavaScript — русскоговорящее сообщество
А вот и неТ, он будет равен window
источник