-2
Почему строка «Hello World» не печатается на консоли?
Я ожидаю, что функция вернет значение после таймера вверх.В следующем javascript-коде, почему вывод не определен?
<script type="text/javascript">
var obj = {
first(){
window.setTimeout(function(){
return 'Hello World';
}, 0)
},
second(){
console.log(this.first());
}
}
obj.second()
</script>
Вы должны вернуть обещание от 'first'. Это правильный способ сделать это. –
return Тип функции обратного вызова не будет влиять на возвращаемое значение метода. Вы должны вернуть некоторое значение в первом методе – sai
Это как говорит sai, функция 'function() {return 'Hello World';}' существует в полностью различающийся для 'first() {...}', и с setTimeout, являющимся асинхронным, вызов 'first()' разрешается без оператора return (undefined). –