Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 9월.
* Some parts of this feature may have varying levels of support.
**WeakSet**은 객체와 등록되지 않은 심볼을 포함하여 쓰레기 수집이 가능한 값의 모음입니다. WeakSet의 값은 한 번만 나타날 수 있습니다. 이 값은 WeakSet의 컬렉션에서 고유합니다.
WeakSet의 값은 필연적으로 쓰레기 수집될 수 있습니다. 대부분의 원시 데이터 유형은 대부분 임의로 생성될 수 있고 수명이 없으므로 저장할 수 없습니다. 객체와 등록되지 않은 심볼은 쓰레기 수집이 가능하기 때문에 저장될 수 있습니다
Set 객체와 주된 차이는 다음과 같습니다.
Set과 달리, WeakSet은 객체와 심볼 만의 컬렉션이며 모든 유형의 임의 값은 포함할 수 없습니다.
WeakSet은 약합니다(weak). 즉 컬렉션 내 객체 참조는 약하게 유지됩니다. WeakSet 내 저장된 객체에 다른 참조가 없는 경우, 쓰레기 수집될 수 있습니다.
참고 : 이는 또한 컬렉션 내 현재 저장된 객체 목록이 없음을 뜻합니다. WeakSets은 열거불가입니다.
재귀적으로 자신을 호출하는 함수는 순환 데이터 구조를 방지하기 위해 이미 처리된 객체를 추적할 수 있는 방법이 필요합니다.
WeakSet은 이 목적을 위한 이상적인 방법입니다.
여기서는 첫 번째 실행 시 WeakSet이 생성되고 이후 모든 함수 호출(내부 _refs 매개변수 사용)과 함께 전달됩니다.
객체의 수 또는 순회 순서는 중요하지 않으므로, 특히 매우 많은 수의 객체가 관련된 경우 객체 참조를 추적하려면 WeakSet이 Set보다 더 적합하고 성능도 뛰어납니다.
새 WeakSet 객체를 생성합니다.
아래 속성은 WeakSet.prototype에 정의되어 있고, 모든 WeakSet 인스턴스와 공유됩니다.
WeakSet.prototype.constructor인스턴스 객체를 생성하는 생성자 함수입니다. WeakSet 인스턴스에서는 초기 값은 WeakSet 생성자입니다.
WeakSet.prototype[@@toStringTag]@@toStringTag 속성의 초기 값은 문자열 "WeakSet"입니다. 이 속성은 Object.prototype.toString()에서 사용됩니다.
WeakSet 객체에 value를 추가합니다.
WeakSet.prototype.delete()WeakSet에서 value를 제거합니다. 이 이후에 WeakSet.prototype.has(value)는 false를 반환합니다.
WeakSet.prototype.has()WeakSet 객체에 value 값 존재 여부를 부울 값으로 반환합니다.
| ECMAScript® 2027 Language Specification # sec-weakset-objects |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2024년 9월 30일 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.