0

オブジェクトの値を直接ではなく変更することは可能ですか?

例えば

a = {x: 5}

b = a.x
b = 100

a.x // => 5

100 にしたいのですが、実際にa.xはまだ 5 です。

4

4 に答える 4

5

あなたがそうしているわけではありません。ただし、これを行うことができます:

a = { x: 5 };
b = a;
b.x = 100;
a.x // => 100
于 2012-06-14T10:03:26.863 に答える
1

数字を文字としてではなく、オブジェクトとして使用するだけです。

a = {x: {v: 5}}

b = a.x
b.v = 100

a.x​​.v // => 100
于 2012-06-14T10:31:47.637 に答える
1

はい、できます。オブジェクトへのすべての参照は、最初のものであるかどうかに関係なく、等しくなります。ただし、a.xはオブジェクトではなく、 object のプロパティであるaため、b = a.xそのプロパティの値をコピーすると、たまたま に単純な数値になりbます。bは にまったくリンクされておらず、aに何か他のものを割り当てても にbは何もしませんa。を割り当てる必要があります。その後、両方の変数によって参照されるオブジェクトのb = aプロパティをまたはとして変更できます。.xa.xb.x

于 2012-06-14T10:05:43.180 に答える
0

JavaScript でこれを実現することは不可能です。5 は Number 型で、Value 型です。関数、オブジェクト、または配列とは異なり、参照を通じてアクセスする方法はありません。

于 2012-06-14T10:04:38.040 に答える