コンテキスト
関数とフィールドは現在のコンテキストで実行され、関数ボディーとフィールドボディーは子のコンテキストで実行されます
{
"value": "hello",
"child": {
"value": "world"
}
}
例では$valueは"hello"というStringで$childはObjectです。$child[/*here*/]のhereは子のコンテキストなので$child[$value]の$valueは"world"になります
全ての関数ボディーが子のコンテキストで実行されるわけではありません。いくつかの関数ボディーは現在のコンテキストや親のコンテキストで実行されます。関数のドキュメントを見に行くことを覚える必要があります