1

以下は、通常の JavaScript セマンティクスです。

js> a={'a':{'red':12,'green':23,'blue':34}}
({a:{red:12, green:23, blue:34}})
js> b=a['a']                                                                    
({red:12, green:23, blue:34})
js>b={red:122, green:232, blue:142}                                                                        
({red:122, green:232, blue:142})
js> a
({a:{red:12, green:23, blue:34})
js>

以下は、私が持ちたいセマンティクスです。

js> a={'a':{'red':12,'green':23,'blue':34}}
({a:{red:12, green:23, blue:34}})
js> b=a['a']                                                                    
({red:12, green:23, blue:34})
js>b={red:122, green:232, blue:142}                                                                        
({red:122, green:232, blue:142})
js> a
({red:122, green:232, blue:142})
js>

javascriptを私のやり方で動作させるための簡単な内部トリックはありますか?

4

1 に答える 1

0

Javascript には「参照へのポインタ」型がありません。ただし、「オブジェクトのプロパティ」タイプ (オブジェクト、プロパティ名。ローカル変数を指すことはできません) を作成できます。

a={'a':{'red':12,'green':23,'blue':34}}
//({a:{red:12, green:23, blue:34}})
b={obj:a, key:"a"}
b.obj[b.key]                                                             
//({red:12, green:23, blue:34})
b.obj[b.key]={red:122, green:232, blue:142}                                                                        
//({red:122, green:232, blue:142})
a
//({a:{red:122, green:232, blue:142}})

bまたは、以下を参照するオブジェクトを上書きすることもできます。

a={'a':{'red':12,'green':23,'blue':34}}
//({a:{red:12, green:23, blue:34}})
b=a['a'] //or a.a
//({red:12, green:23, blue:34})
b.red = 122;
b.green = 232;
b.blue = 142;
b
//({red:122, green:232, blue:142})
a
//({a:{red:122, green:232, blue:142}})
于 2013-04-01T06:41:44.687 に答える