Javascript 메모리 할당 메커니즘

1232 단어 전단 개발
JS 메모리 공간 은 스 택, 쌓 기, 풀 로 나 뉜 다.그 중에서 스 택 저장 변 수 는 복잡 한 대상 을 쌓 고 연못 은 상수 입 니 다.
 
밤 을 하나 들다.
// a1、a2、a3      
var a1 = 0;
var a2 = "This is string.";
var a3 = null;

// b1     ,{m:20}     
var b1 = {
	m: 20
};
// b2     ,[1,2,3]     
var b2 = [1, 2, 3];

예시 분석
예시 1:
var a = 20;
var b = a;
b = 30;
console.log("a = " + a); //            ?

예시 2:
var c = {
	m: 20,
	n: 30
};
var d = c;
d.m = 15;
console.log("c.m = " + c.m); //            ?

결과:
예시 1:
a = 20

예시 2:
c.m = 15

해석:
 
예제 1: a 를 스 택 에 저장 하고 "var b = a;" 를 실행 할 때 시스템 은 b 에 게 새로운 스 택 메모리 공간 을 할당 하고 a 의 값 을 b 에 복사 합 니 다.이때 a, b 는 서로 독립 되 고 서로 영향 을 주지 않 기 때문에 b 의 값 을 바 꾸 면 a 의 값 에 영향 을 주지 않 는 다.
 
예시 2: c 는 창고 에 보관 하지만 {m: 20, n: 30} 은 더미 에 보관 하고 c 는 {m: 20, n: 30} 의 주소 입 니 다."var d = c;" 를 실행 할 때 시스템 은 d 에 게 새로운 스 택 메모리 공간 을 할당 합 니 다. 그러나 이 때 시스템 은 {m: 20, n: 30} 을 저장 하 는 데 새로운 메모 리 를 할당 하지 않 고 원래 의 {m: 20, n: 30} 주 소 를 d 에 복사 하기 때문에 d 와 c 에 저 장 된 것 은 같은 주소 입 니 다. 즉, c 와 d 는 서로 영향 을 줍 니 다.이 때 d 가 가리 키 는 주소 의 값 을 바 꾸 면 c 가 가리 키 는 주소 의 값 도 달라 집 니 다.

좋은 웹페이지 즐겨찾기