>  기사  >  웹 프론트엔드  >  JavaScript 개체 참조 및 할당을 위한 샘플 코드 공유

JavaScript 개체 참조 및 할당을 위한 샘플 코드 공유

黄舟
黄舟원래의
2017-03-17 15:19:17992검색

이 글은 주로 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 = &#39;ABC&#39;; //把ABC的值 赋予了myVa
var myVb = myVa; // myVa 赋值给 myVb
myVa = &#39;DEF&#39;; //修改myVa
/**
* 输出的是:ABC. 因为是把值保存在了变量了 而不是保存的是引用地址,所以他们两个是相对独立的整体.
*/
alert(myVb);
</script>

서로 영향을 주지 않고 객체를 복사하려면 변환 할당을 통해 메소드와

속성을 복사해야 합니다. 키:값 순회.

참고: 객체의 하위 객체도 참조이므로 할당을 순회할 때 하위 요소가 객체인지 확인해야 합니다. 하위 요소를 탐색하고 할당합니다.

변환 할당 방법:

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);

출력 결과:

{"a":"1","b":"2"},{"a":2}

위 내용은 JavaScript 개체 참조 및 할당을 위한 샘플 코드 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.