события события javascript & hellip; что здесь не так? [Дубликат]

Цель динамического переноса - «проверять во время выполнения, если объект имеет определенный тип в иерархии». Итак, давайте посмотрим, что у вас есть:

  1. У вас есть объект точки. Не подпункт.
  2. Вы запрашиваете динамическое преобразование, если объект является подпунктовой. Это не так.
  3. Поскольку его не подпункт, dynamic_cast не работает - его способ сказать вам, что объект не тот тип, который вы пытаетесь передать.

Напротив, это сработало бы:

subpoint c;
point *a = &c;
subpoint* b = dynamic_cast<subpoint*>(&a);
subpoint* b = (subpoint*)a;
0
задан NoobOfNoobs 10 April 2017 в 07:29
поделиться

5 ответов

Правильный способ передачи ссылки функции - использовать обратные вызовы.

names.forEach(name => setTimeout(function() {
    printer(name);
}, 1000));

обратные вызовы содержат ссылку на функцию.

setTimeout(callbackFunction, milliseconds);
0
ответ дан Ankush Jain 16 August 2018 в 02:41
поделиться

Вы можете сделать это следующим образом:

setTimeout(printer, 1000, name)
0
ответ дан Matansh 16 August 2018 в 02:41
поделиться

Это из-за порядка выполнения. Если вы передадите вызов функции setTimeout, функция будет выполнена немедленно, то есть функция сразу же будет помещена в стек выполнения javascript.

Если вы передадите имя функции, то есть ссылку на функцию, функция будет помещена в стек выполнения нити javascript после завершения таймера.

2
ответ дан Quan Vuong 16 August 2018 в 02:41
поделиться

вы можете попробовать следующее:

setTimeout(function(){printer(name)}, 1000)
1
ответ дан Sahal Tariq 16 August 2018 в 02:41
поделиться

setTimeout должен принимать функцию в качестве своего первого аргумента.

Пожалуйста, обратитесь:

https://www.w3schools.com/jsref/met_win_settimeout.asp

Здесь вы передаете результат функции в качестве первого аргумента, который является undefined.

0
ответ дан Sridhar Sg 16 August 2018 в 02:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: