2015-12-03 3 views
-1

Может кто-нибудь объяснить мне: почему это не так:JavaScript: возвращение неопределенное вместо объекта

if (current <= last) { 
    //here! 
    return 
    { 
     done: false, 
     value: current++ 
    }; 
} else { 
    return 
    { 
     done: true 
    }; 
} 

и это правильно?

if (current <= last) { 
    //error here 
    return { 
     done: false, 
     value: current++ 
    }; 
} else { 
    return { 
     done: true 
    }; 
} 

В обоих случаях код возвращает объект, но когда я перемещаю первую скобку объекта на новый код линии, перестань работать.

+0

@Tushar Thats а не doublicate Вопроса вы отметили. Но есть и другой подобный вопрос. – CoderPi

+0

@CodeiSir Можете ли вы разместить ссылку на него – Tushar

+0

@Tushar Я не могу найти его, но я отредактировал заголовок этого сообщения, так что в будущем он будет легче найти – CoderPi

ответ

1

Потому что «возврат», а затем новая строка - это полное заявление, которое ничего не вернет, потому что после return ничего не происходит, он возвращает undefined.

Это как если бы вы написать return;

Смежные вопросы