Baseline Widely available *
**WeakSet
**ì ê°ì²´ì ë±ë¡ëì§ ìì ì¬ë³¼ì í¬í¨íì¬ ì°ë 기 ìì§ì´ ê°ë¥í ê°ì 모ìì
ëë¤. WeakSet
ì ê°ì í ë²ë§ ëíë ì ììµëë¤. ì´ ê°ì WeakSet
ì 컬ë ì
ìì ê³ ì í©ëë¤.
WeakSetì ê°ì íì°ì ì¼ë¡ ì°ë 기 ìì§ë ì ììµëë¤. ëë¶ë¶ì ìì ë°ì´í° ì íì ëë¶ë¶ ììë¡ ìì±ë ì ìê³ ìëª ì´ ìì¼ë¯ë¡ ì ì¥í ì ììµëë¤. ê°ì²´ì ë±ë¡ëì§ ìì ì¬ë³¼ì ì°ë 기 ìì§ì´ ê°ë¥í기 ë문ì ì ì¥ë ì ììµëë¤
Set
ê°ì²´ì 주ë ì°¨ì´ë ë¤ìê³¼ ê°ìµëë¤.
Set
ê³¼ ë¬ë¦¬, WeakSet
ì ê°ì²´ì ì¬ë³¼ ë§ì 컬ë ì
ì´ë©° 모ë ì íì ìì ê°ì í¬í¨í ì ììµëë¤.
WeakSet
ì ì½í©ëë¤(weak). ì¦ ì»¬ë ì
ë´ ê°ì²´ 참조ë ì½íê² ì ì§ë©ëë¤. WeakSet
ë´ ì ì¥ë ê°ì²´ì ë¤ë¥¸ ì°¸ì¡°ê° ìë ê²½ì°, ì°ë 기 ìì§ë ì ììµëë¤.
ì°¸ê³ : ì´ë ëí 컬ë ì
ë´ íì¬ ì ì¥ë ê°ì²´ 목ë¡ì´ ììì ë»í©ëë¤. WeakSets
ì ì´ê±°ë¶ê°ì
ëë¤.
ì¬ê·ì ì¼ë¡ ìì ì í¸ì¶íë í¨ìë ìí ë°ì´í° 구조를 ë°©ì§í기 ìí´ ì´ë¯¸ ì²ë¦¬ë ê°ì²´ë¥¼ ì¶ì í ì ìë ë°©ë²ì´ íìí©ëë¤.
WeakSet
ì ì´ ëª©ì ì ìí ì´ìì ì¸ ë°©ë²ì
ëë¤.
// ê°ì²´ ë´ ì ì¥ë 모ë ê²ì ëí´ ì½ë°± ì¤í
function execRecursively(fn, subject, _refs = new WeakSet()) {
// 무í ì¬ê· íí¼
if (_refs.has(subject)) {
return;
}
fn(subject);
if (typeof subject === "object" && subject) {
_refs.add(subject);
for (const key in subject) {
execRecursively(fn, subject[key], _refs);
}
_refs.delete(subject);
}
}
const foo = {
foo: "Foo",
bar: {
bar: "Bar",
},
};
foo.bar.baz = foo; // ìí 참조!
execRecursively((obj) => console.log(obj), foo);
ì¬ê¸°ìë 첫 ë²ì§¸ ì¤í ì WeakSet
ì´ ìì±ëê³ ì´í 모ë í¨ì í¸ì¶(ë´ë¶ _refs
매ê°ë³ì ì¬ì©)ê³¼ í¨ê» ì ë¬ë©ëë¤.
ê°ì²´ì ì ëë ìí ììë ì¤ìíì§ ìì¼ë¯ë¡, í¹í ë§¤ì° ë§ì ìì ê°ì²´ê° ê´ë ¨ë ê²½ì° ê°ì²´ 참조를 ì¶ì íë ¤ë©´ WeakSet
ì´ Set
ë³´ë¤ ë ì í©íê³ ì±ë¥ë ë°ì´ë©ëë¤.
WeakSet()
ì WeakSet
ê°ì²´ë¥¼ ìì±í©ëë¤.
ìë ìì±ì WeakSet.prototype
ì ì ìëì´ ìê³ , 모ë WeakSet
ì¸ì¤í´ì¤ì ê³µì ë©ëë¤.
WeakSet.prototype.constructor
ì¸ì¤í´ì¤ ê°ì²´ë¥¼ ìì±íë ìì±ì í¨ìì
ëë¤. WeakSet
ì¸ì¤í´ì¤ììë ì´ê¸° ê°ì WeakSet
ìì±ìì
ëë¤.
WeakSet.prototype[@@toStringTag]
@@toStringTag
ìì±ì ì´ê¸° ê°ì 문ìì´ "WeakSet"
ì
ëë¤. ì´ ìì±ì Object.prototype.toString()
ìì ì¬ì©ë©ëë¤.
WeakSet.prototype.add()
WeakSet
ê°ì²´ì value
를 ì¶ê°í©ëë¤.
WeakSet.prototype.delete()
WeakSet
ìì value
를 ì ê±°í©ëë¤. ì´ ì´íì WeakSet.prototype.has(value)
ë false
를 ë°íí©ëë¤.
WeakSet.prototype.has()
WeakSet
ê°ì²´ì value
ê° ì¡´ì¬ ì¬ë¶ë¥¼ ë¶ì¸ ê°ì¼ë¡ ë°íí©ëë¤.
WeakSet
ê°ì²´ ì¬ì©
const ws = new WeakSet();
const foo = {};
const bar = {};
ws.add(foo);
ws.add(bar);
ws.has(foo); // true
ws.has(bar); // true
ws.delete(foo); // setìì foo를 ì ê±°
ws.has(foo); // false, foo ë ì´ë¯¸ ì ê±°
ws.has(bar); // true, bar ë ì ì§ ë¨
ëª
ì¸ ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4