--- title: WeakSet slug: Web/JavaScript/Reference/Global_Objects/WeakSet tags: - ECMAScript 2015 - JavaScript - Reference - WeakSet translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet ---
{{JSRef}}

WeakSet 객체는 약하게 유지되는(held, 잡아두는) 객체를 컬렉션에 저장할 수 있습니다.

구문

new WeakSet([iterable]);

매개변수

iterable
iterable 객체가 전달된 경우, 모든 객체 요소는 새로운 WeakSet에 추가됩니다. null은 undefined로 취급됩니다.

설명

WeakSet 객체는 객체 컬렉션입니다. WeakSet 내 객체는 오직 한 번만 발생할 수 있습니다. 즉, WeakSet 컬렉션 내에서 유일합니다.

{{jsxref("Set")}} 객체와 주된 차이는 다음과 같습니다:

속성

WeakSet.length
length 속성값은 0.
{{jsxref("WeakSet.prototype")}}
Set 생성자에 대한 프로토타입을 나타냅니다. 모든 WeakSet 객체에 속성을 추가할 수 있습니다.

WeakSet 인스턴스

모든 WeakSet 인스턴스는 {{jsxref("WeakSet.prototype")}}에서 상속합니다.

속성

{{page('ko/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','속성')}}

메서드

{{page('ko/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','메서드')}}

예제

WeakSet 객체 사용

var ws = new WeakSet();
var obj = {};
var foo = {};

ws.add(window);
ws.add(obj);

ws.has(window); // true
ws.has(foo);    // false, foo가 집합에 추가되지 않았음

ws.delete(window); // 집합에서 window 제거함
ws.has(window);    // false, window가 제거되었음

명세

명세 상태 설명
{{SpecName('ES2015', '#sec-weakset-objects', 'WeakSet')}} {{Spec2('ES2015')}} 초기 정의.
{{SpecName('ESDraft', '#sec-weakset-objects', 'WeakSet')}} {{Spec2('ESDraft')}}  

브라우저 호환성

{{Compat("javascript.builtins.WeakSet")}}

같이 보기