먼저, var a는 스택에서 공백을 연 다음 참조 유형인 함수에 할당합니다. 그래서 함수를 저장하기 위해 힙에 또 다른 공간을 신청했습니다. 이때 스택에 있는 a는 함수 주소var a会在stack里面开一块空间,然后你将他赋给一个function,是一个引用类型,于是又在heap里面又申请一块空间存放function,此时,stack里面的a存放的是function的地址
그리고 아래에서는 스택에서 a가 가리키는 인 a에 b를 할당합니다. code> >heap에 있는 function의 주소는 b에 할당되므로 나중에 a가 를 가리키는 이유가 됩니다. null이지만 b는 여전히 함수가 이전 힙에 있었던 이유를 가리킵니다. #🎜🎜#
#🎜🎜#파괴하는 방법? b를 null 또는 다른 값으로 설정하면 됩니다. 따라서 이런 종류의 변수에는 전역 변수를 작성하지 말고 지역 변수를 작성하십시오. #🎜🎜#
메모리에 대한 참조인가요? 이 질문은 좀 너무 광범위합니다. 데이터는 메모리에 저장되므로 메모리를 참조하는 것이 당연합니다. 하지만 메모리를 참조하는 것만큼 간단하지는 않습니다. 메모리는 데이터를 저장하는 역할만 담당하며, 데이터 간의 관계는 반영되지 않으므로 직접메모리 참조 중간에 숨겨진 처리가 있습니다. 기본적인 작동 이론은 있지만 사실 구체적인 내용을 아는 사람은 거의 없습니다. 맨 밑바닥
또한 재활용 방법에는 두 가지가 있습니다.
으아악
으아악
일반적으로 방법 1을 사용하세요. 데이터가 일정량에 도달하는 경우 등 타이밍 등 자동 재활용이 발생하는 원인은 많습니다
먼저,
var a
는스택
에서 공백을 연 다음 참조 유형인함수
에 할당합니다. 그래서함수
를 저장하기 위해힙
에 또 다른 공간을 신청했습니다. 이때스택
에 있는a
는함수
주소var a
会在stack
里面开一块空间,然后你将他赋给一个function
,是一个引用类型,于是又在heap
里面又申请一块空间存放function
,此时,stack
里面的a
存放的是function
的地址而下面,将
b
赋值给a
,是将stack
里面a
指向的heap
里面function
的地址赋给b
,所以这就是为什么后来a
指向了null
,但是b
仍然指向之前heap
里面function
的原因。如何销毁?将
그리고 아래에서는b
也设置为null
스택에서
a
가 가리키는인
에 있는a
에b
를 할당합니다. code> >heapfunction
의 주소는b
에 할당되므로 나중에a
가를 가리키는 이유가 됩니다. null
이지만b
는 여전히함수
가 이전힙
에 있었던 이유를 가리킵니다. #🎜🎜# #🎜🎜#파괴하는 방법?b
를null
또는 다른 값으로 설정하면 됩니다. 따라서 이런 종류의 변수에는 전역 변수를 작성하지 말고 지역 변수를 작성하십시오. #🎜🎜#메모리에 대한 참조인가요? 이 질문은 좀 너무 광범위합니다. 데이터는 메모리에 저장되므로 메모리를 참조하는 것이 당연합니다.
하지만 메모리를 참조하는 것만큼 간단하지는 않습니다. 메모리는 데이터를 저장하는 역할만 담당하며, 데이터 간의 관계는 반영되지 않으므로 직접메모리 참조
중간에 숨겨진 처리가 있습니다. 기본적인 작동 이론은 있지만 사실 구체적인 내용을 아는 사람은 거의 없습니다. 맨 밑바닥
또한 재활용 방법에는 두 가지가 있습니다.
으아악 으아악일반적으로 방법 1을 사용하세요. 데이터가 일정량에 도달하는 경우 등 타이밍 등 자동 재활용이 발생하는 원인은 많습니다
으아악
js는 삭제를 사용하여 변수를 수동으로 재활용할 수 있습니다
가비지 수집 메커니즘 정보:
이전 버전의 IE에서는 DOM이 COM 개체 형식이며 참조 계산을 사용하여 지워집니다. 순환 참조가 있으면 메모리를 해제할 기회가 없습니다.
표준 브라우저에서는 메모리를 해제하려면 참조를 수동으로 해제하고 null로 설정하기만 하면 됩니다.
참조를 역참조하지 않으면 실행 환경이 종료될 때까지 메모리가 해제되지 않고 전역 변수 개체도 전역 실행 환경이 종료될 때까지 해제되지 않습니다. 즉, 브라우저가 닫힐 때까지 해제되지 않습니다. .