Следующий пример адаптирован из "Groovy в действии"
class Mother {
Closure birth() {
def closure = { caller ->
[this, caller]
}
return closure
}
}
Mother julia = new Mother()
closure = julia.birth()
context = closure.call(this)
println context[0].class.name // Will print the name of the Script class
assert context[1] instanceof Script
Согласно книге, значение this
внутри замыкания является самой внешней областью (т.е. область, в которой объявляется julia
). Правильно ли я полагаю, что
-
this
внутри замыкания оценивается область, в которой называется замыкание? - в приведенном выше закрытии,
this
иcaller
относятся к той же области видимости?
Спасибо, Дон