質問を拡大するには、次のステートメントが可能であることを望みます。
declare("Hello") = bindVal("World")
ここで、declare
とbindVal
は次のような関数です。
function declare(p){ return window[p] }
function bindVal(x){ return x }
ここでのポイントは、declare
いくつかの操作を実行し、いくつかの副作用があることです。しかし、私の場合、declare は何も返す必要はありません。ただし、値が割り当てられるのを待っている「ぶら下がっている」変数を返す場合は、それが最も理想的です。
コンソールでこの式を実行すると、エラーがスローされます。
ReferenceError: Invalid left-hand side in assignment
declare
だから私の質問は:私の声明が可能になるような関数で何か空想をすることはできますか? 私の考えでは、これは左側と右側がどのように評価されるかの順序です:
declare("Hello") = bindVal("world")
window.Hello = bindVal("world")
window.Hello = world
要約すると、左側は右側より先に完全に評価されます。