3

これは純粋な好奇心です。オブジェクトを書きましょう:

 var display = { res1:{ w:640, h:480 }, res2:{ w:320, h:240 }, nores:{} };

このオブジェクトから、noresプロパティを関数に送信しています。noresはオブジェクトなので、変更内容somefunctionは後で で表示されdisplay.noresます。

 somefunction(display.nores);

ここで質問です。display がクロージャー内で定義され、そのクロージャーの外側で定義されている場合、の他のプロパティ ( / )somefunction()にアクセスする形式はありますか? つまり、引数として渡されたプロパティからオブジェクト全体を参照できますか?displayres1res2somefunction()displaynores

4

2 に答える 2

4

ディスプレイがクロージャー内で定義され、 somefunction() がそのクロージャーの外側で定義されている場合、 somefunction() にはディスプレイの他のプロパティ (res1 / res2) へのアクセスの形式がありますか?

いいえ

つまり、引数として渡された nores プロパティから表示オブジェクト全体を参照できますか?

オブジェクトのプロパティとその値の間に逆の関係はありません。それらを見つける唯一の方法は、オブジェクトにアクセスしてから、一致するものが見つかるまでループすることです。

于 2012-06-19T10:30:13.070 に答える
2

いいえ、内側のオブジェクトから外側のオブジェクトを取得することはできません。

javascript の参照アドレスで「遊ぶ」ことはできません。許可されていないもの (カプセル化) には正当な理由があります。「受信」していないものに触れることは許可されるべきではありません。

こんなことが可能な言語があるかどうかはわかりませんが、Maybe Maybe C .

于 2012-06-19T10:30:22.977 に答える