Javascript 메모리 할당 메커니즘
1232 단어 전단 개발
밤 을 하나 들다.
// 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 가 가리 키 는 주소 의 값 도 달라 집 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Chrome Extension 2 편 -- 통신메모: 만약 여러 페이지 가 onMessage 사건 을 감청 한다 면, 어떤 사건 에 대해 서 는 sendResponse () 를 처음 호출 하 는 것 만 성공 적 으로 응답 할 수 있 고, 모든 다른 응답 은 무 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.