Сообщение от x-yuri
|
ну так здесь нету никакого завершения внешней функции из вложенной.
|
Зависит от реализаций, в данном случае читай - завершение функции getElement из двойного вложения: метода .forEach и функции-аргумента. В ES такое невозможно. В других языка (например, Smalltak) - возможно.
Сообщение от Kolyaj
|
Dmitry A. Soshnikov,
че-та я тоже пример не понял.
А почему должен быть 2?
|
Нет, не должен, конечно. Для ES должен быть, правильно, null. Но вопрос в том, что иногда это может быть удобно, и, что в других языках предусмотрены для этого конструкции.
Вот этот раздел:
http://en.wikipedia.org/wiki/Closure...in_sema ntics (там пониже как раз примеры на Ruby с разными вариациями return-a приводится)
Но речь идёт только о возможном завершении стека вызова (когда контексты существуют); и в Ruby можно сделать ошибку return-a, когда он не сможет определить, в какой контекст возвращать.