Baseline Widely available
new.target
ìì±(property)ì í¨ì ëë ìì±ìê° new ì°ì°ì를 ì¬ì©íì¬ í¸ì¶ëëì§ë¥¼ ê°ì§í ì ììµëë¤. new ì°ì°ìë¡ ì¸ì¤í´ì¤íë ìì±ì ë° í¨ììì, new.target
ì ìì±ì ëë í¨ì 참조를 ë°íí©ëë¤. ì¼ë° í¨ì í¸ì¶ììë, new.target
ì undefined
ì
ëë¤.
function Foo() {
if (!new.target) {
throw new TypeError("calling Foo constructor without new is invalid");
}
}
try {
Foo();
} catch (e) {
console.log(e);
// Expected output: TypeError: calling Foo constructor without new is invalid
}
구문 ì¤ëª
new.target
구문ì í¤ìë "new
", ì ë° ìì±ëª
"target
"ì¼ë¡ 구ì±ë©ëë¤. ë³´íµ "new.
"ì ìì± ì ê·¼ì ìí 문맥(context)ì¼ë¡ ì ê³µíì§ë§ ì¬ê¸°ì "new.
"ì ì ë§ ê°ì²´ê° ìëëë¤. ê·¸ë¬ë, ìì±ì í¸ì¶ìì new.target
ì new
ì ìí´ í¸ì¶ë ìì±ì를 ê°ë¦¬í¤ê³ ê·¸ëì "new.
"ì ê°ì ë¬¸ë§¥ì´ ë©ëë¤.
new.target
ìì±ì 모ë í¨ìê° ì´ì©í ì ìë ë©í ìì±ì
ëë¤. íì´í í¨ììì, new.target
ì ëë¬ì¸ë í¨ìì new.target
ì ë§í©ëë¤.
ì¼ë° í¨ì í¸ì¶(ìì±ì í¨ì í¸ì¶ê³¼ë ë°ëë¡)ìì, new.target
ì undefined
ì
ëë¤. ì´ë í¨ìê° ìì±ìë¡ì newë¡ í¸ì¶ë ê²½ì°ë¥¼ ê°ì§í ì ììµëë¤.
function Foo() {
if (!new.target) throw "Foo() must be called with new";
console.log("Foo instantiated with new");
}
Foo(); // throws "Foo() must be called with new"
new Foo(); // logs "Foo instantiated with new"
ìì±ììì new.target
í´ëì¤ ìì±ììì, new.target
ì new
ì ìí´ ì§ì í¸ì¶ë ìì±ì를 ê°ë¦¬íµëë¤. ì´ë ê·¸ ìì±ìê° ë¶ëª¨ í´ëì¤ì ìê³ ìì ìì±ìë¡ë¶í° ììë°ì ê²½ì°ë ê·¸ ê²½ì°ì
ëë¤.
class A {
constructor() {
console.log(new.target.name);
}
}
class B extends A {
constructor() {
super();
}
}
var a = new A(); // logs "A"
var b = new B(); // logs "B"
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
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