[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: setTimeout
Reh
Если написать так -
setTimeout(this.disappear(id), 2000);
то отсрочка не работает
Если так -
setTimeout("this.disappear("+id+")", 2000);
то вообще функция не вызывается, ошибку пишет, но отсрочка работает

Как нужно сделать?
FatCat
id = id*1;
setTimeout(this.disappear(id), 2000);

А так?

_____________
Бесплатному сыру в дырки не заглядывают...
sergeiss
Вот так

var self = this;
setTimeout( function() {
self.disappear(id);
}, 2000);

или так

setTimeout( () =>
{ this.disappear(id); }
, 2000);

(в последнем варианте, по-моему, можно и без фигурных скобок - попробуй и так, и эдак)


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Reh
Цитата
А так?


так не работает

Цитата
(в последнем варианте, по-моему, можно и без фигурных скобок - попробуй и так, и эдак)

Шторм такой вариант не пропускает

А вот первый вариант работает отлично!!! smile.gif
Спасибо!
sergeiss
Цитата (Reh @ 15.11.2015 - 23:07)
Шторм такой вариант не пропускает

А послать его? Этот вариант из самой последней спецификации JS, браузеры его понимают. http://es6-features.org/#ExpressionBodies вот тут смотри или гугли "fat arrows" или "js arrow functions".

PS. Кстати, НетБинс тоже возникает на такие функции, подчеркивает как ошибочный синтаксис. Да и пофиг, всё равно же это только IDE, а не браузер.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Invis1ble
без создания анонимной функции
setTimeout(this.disappear.bind(this, id), 2000);


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Invis1ble
Цитата (sergeiss @ 16.11.2015 - 01:10)
А послать его?
sergeiss
Цитата (Invis1ble @ 16.11.2015 - 05:01)
не, лучше настроить

Настроить... А НетБинс можно настроить, чтобы он понимал новый синтаксис? Я там полазил по настройкам, ничего не нашел подходящего.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Invis1ble
Цитата (sergeiss @ 16.11.2015 - 07:49)
Цитата (Invis1ble @ 16.11.2015 - 05:01)
не, лучше настроить

Настроить... А НетБинс можно настроить, чтобы он понимал новый синтаксис? Я там полазил по настройкам, ничего не нашел подходящего.

давно бобами не пользовался, но судя по этому тикету - нет smile.gif
хотя там в последнем комменте есть ссылка на новый плагин, попробуй его

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

chee
замыкания же, но опять же, зависит от ситуации


self = this;

setTimeout((function (id) {
return function () {
self.disappear(id);
};
})(id), 1500)


Я такое на собеседование задаю

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
chee, а зачем такие 16-этажные конструкции, когда можно всё сделать проще?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Reh
Цитата
А послать его?

Тогда все работает! Но только с фигурными скобками smile.gif

Цитата
setTimeout(this.disappear.bind(this, id), 2000);

Так тоже работает!
Спасибо за новый способ smile.gif
chee
sergeiss, потому что я не люблю синтаксический сахар.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.