ホームページ > 記事 > ウェブフロントエンド > JavaScript オブジェクトの参照と割り当てのサンプル コード共有
この記事は主にJavaScriptオブジェクトの参照と代入を紹介し、JavaScriptのオブジェクト参照と代入の操作スキルと関連事項を例の形で分析しますメモ
、必要な友人はそれを参照できます例はこの記事では、JavaScript オブジェクトの参照と割り当てについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:<script type="text/javascript"> //例子一: 引用 var myArrayRef = new Array(0,1,2); //创建数组对象 var mySeconArrayRef = myArrayRef; // 对象复制. myArrayRef[0] = 100; // 修改元素值 alert(mySeconArrayRef[0]); /** * 输出 100; 学过其它语言的都应该知道这里应该输出的是0 为什么输出的是100呢? * 上面程序通过把myArrayRef对象复制给了mySeconArrayRef这时就存在了2个独立的 但最初值是相同的对象 * 因为是独立的为什么修改myArrayRef会对别一个对象有影响呢?大家都知道只有当他们引用的是同一个对象时这时修改一个才会 * 对别一个产生影响.但是在javascript语言中创建的对象myArrayRef值中其时保存的是对象的引用(也就是一个地址). * 也就是 我用 new Array生成的保存在内存中而new Array把它所在的地方告诉了myArrayRef,myArrayRef又把这地址告诉了mySeconArrayRef * 他们两个都指向的是new Array生成对象的地址而不是把对象保存在myArrayRef中,所以通过其中的一个去修改值时其时是修改他们同指象的那对象. */ alert(mySeconArrayRef[0] ); //例子二: 赋值 var myVa = 'ABC'; //把ABC的值 赋予了myVa var myVb = myVa; // myVa 赋值给 myVb myVa = 'DEF'; //修改myVa /** * 输出的是:ABC. 因为是把值保存在了变量了 而不是保存的是引用地址,所以他们两个是相对独立的整体. */ alert(myVb); </script>相互に影響を与えずにオブジェクトをコピーしたい場合は、変換代入または key:value のトラバースを通じてメソッドと 属性 をコピーする必要があります。
注: オブジェクトのサブオブジェクトも参照であるため、値を走査して割り当てるときは、サブ要素がオブジェクトであるかどうかを判断する必要があります。サブ要素がオブジェクトの場合は、走査と値の代入を続けます。サブ要素。
変換代入方法:
var data = {a:1,b:2,c:3,d:[0,1,2,3]}; var str = JSON.stringify(data); var data1 = $.parseJSON(str); //$为jQuery对象需要引入jQuery包 data1["e"] = 4; data1["d"][0] = 11; console.log(data); console.log(data1);出力結果:
{a: 1, b: 2, c: 3, d: [0,1,2,3]} {a: 1, b: 2, c: 3, d: [11,1,2,3], e: 4}相互に影響なし
オブジェクト参照が関数パラメータとして渡された場合でも、相互に影響を与えることを覚えておいてください
。次の例では:
var data = {a:1,b:2,c:3,d:{q:4,w:5,e:6}}; var data1 = data; function con(data2){ data2["r"] = 5; console.log(JSON.stringify(data2)); } con(data1); console.log(JSON.stringify(data));出力結果:
{"a":1,"b":2,"c":3,"d":{"q":4,"w":5,"e":6},"r":5} {"a":1,"b":2,"c":3,"d":{"q":4,"w":5,"e":6},"r":5}オブジェクト参照が割り当てられた後、オブジェクトが空白のままであれば、次のように相互に影響を受けません:
var arr = {"a":"1","b":"2"}; var arr1 = arr; arr = {}; arr["a"] = 2; console.log(arr1); console.log(arr);出力結果: 🎜りー
以上がJavaScript オブジェクトの参照と割り当てのサンプル コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。