js의 함수 이름은 함수 객체에 대한 포인터이므로 메모리를 가리키는 건가요?
`
` , 그렇다면 수동 파기 방법은 무엇입니까? 브라우저를 재활용하기 전에 전역 변수를 닫아야 합니까? 해결해 주셔서 감사합니다
迷茫2017-05-19 10:28:59
먼저, 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> >heap
에 있는 function
의 주소는 b
에 할당되므로 나중에 a
가 를 가리키는 이유가 됩니다. null
이지만 b
는 여전히 함수
가 이전 힙
에 있었던 이유를 가리킵니다. #🎜🎜#
#🎜🎜#파괴하는 방법? b
를 null
또는 다른 값으로 설정하면 됩니다. 따라서 이런 종류의 변수에는 전역 변수를 작성하지 말고 지역 변수를 작성하십시오. #🎜🎜#회신하다0
滿天的星座2017-05-19 10:28:59
메모리에 대한 참조인가요? 이 질문은 좀 너무 광범위합니다. 데이터는 메모리에 저장되므로 메모리를 참조하는 것이 당연합니다.
하지만 메모리를 참조하는 것만큼 간단하지는 않습니다. 메모리는 데이터를 저장하는 역할만 담당하며, 데이터 간의 관계는 반영되지 않으므로 직접메모리 참조
중간에 숨겨진 처리가 있습니다. 기본적인 작동 이론은 있지만 사실 구체적인 내용을 아는 사람은 거의 없습니다. 맨 밑바닥
또한 재활용 방법에는 두 가지가 있습니다.
으아악 으아악일반적으로 방법 1을 사용하세요. 데이터가 일정량에 도달하는 경우 등 타이밍 등 자동 재활용이 발생하는 원인은 많습니다
黄舟2017-05-19 10:28:59
가비지 수집 메커니즘 정보:
이전 버전의 IE에서는 DOM이 COM 개체 형식이며 참조 계산을 사용하여 지워집니다. 순환 참조가 있으면 메모리를 해제할 기회가 없습니다.
표준 브라우저에서는 메모리를 해제하려면 참조를 수동으로 해제하고 null로 설정하기만 하면 됩니다.
참조를 역참조하지 않으면 실행 환경이 종료될 때까지 메모리가 해제되지 않고 전역 변수 개체도 전역 실행 환경이 종료될 때까지 해제되지 않습니다. 즉, 브라우저가 닫힐 때까지 해제되지 않습니다. .