Function
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 7ì.
* Some parts of this feature may have varying levels of support.
Function ê°ì²´ë í¨ìì ë©ìë를 ì ê³µí©ëë¤. JavaScriptììë 모ë í¨ìë ì¬ì¤ Function ê°ì²´ì
ëë¤.
ìì±ì
Function()-
ìë¡ì´
Functionê°ì²´ë¥¼ ìì±í©ëë¤. ìì±ì를 ì§ì í¸ì¶íë©´ í¨ì를 ëì ì¼ë¡ ìì±í ì ìì§ë§ ë³´ì ë°eval()ì ì ì¬í(ê·¸ë¬ë í¨ì¬ ë ì¤ìí) ì±ë¥ ë문ì ê³ íµë°ì ì ììµëë¤. ê·¸ë¬ëeval()ê³¼ ë¬ë¦¬Functionìì±ìë ì ì ë²ìììë§ ì¤íëë í¨ì를 ìì±í©ëë¤.
ì¸ì¤í´ì¤ ìì±
ìë ìì±ì Function.prototypeì ì ìëì´ ìê³ ëª¨ë Function ì¸ì¤í´ì¤ìì ê³µì ë©ëë¤.
Function.prototype.arguments-
ì´ í¨ìì ì ë¬ë ì¸ì를 ëíë ëë¤. ì격 모ëììë, íì´í, ë¹ë기 ë° ì ëë ì´í° í¨ìì ê²½ì°
argumentsìì±ì ì¡ì¸ì¤íë©´TypeErrorê° ë°ìí©ëë¤. ëì í¨ì í´ë¡ì ììargumentsê°ì²´ë¥¼ ì¬ì©íì기 ë°ëëë¤. Function.prototype.caller-
ì´ í¨ì를 í¸ì¶í í¨ì를 ëíë ëë¤. ì격 모ëììë íì´í, ë¹ë기 ë° ì ëë ì´í° í¨ìì ê²½ì°
callerìì±ì ì¡ì¸ì¤íë©´TypeErrorê° ë°ìí©ëë¤. Function.prototype.constructor-
ì¸ì¤í´ì¤ ê°ì²´ë¥¼ ìì±í ìì±ì í¨ìì ëë¤.
Functionì¸ì¤í´ì¤ì ê²½ì° ì´ê¸° ê°ìFunctionìì±ìì ëë¤.
ìë ìì±ì ê° Function ì¸ì¤í´ì¤ì ê³ ì ìì±ì
ëë¤.
displayNameOptional-
í¨ìì íì ì´ë¦ì ëë¤.
length-
í¨ìê° ì구íë ì¸ìì ì«ìê° ëª ìëì´ ììµëë¤.
name-
í¨ìì ì´ë¦ì ëë¤.
prototype-
í¨ìê°
newì°ì°ìì í¨ê» ìì±ìë¡ ì¬ì©ë ë ì¬ì©ë©ëë¤. ì ê°ì²´ì íë¡í íì ì´ ë©ëë¤.
ì¸ì¤í´ì¤ ë©ìë
Function.prototype.apply()-
주ì´ì§
thisê°ê³¼ ë°°ì´ (í¹ì ì ì¬ ë°°ì´ ê°ì²´)ë¡ ì ê³µëë ì íì ì¸ì를 ê°ì§ í¨ì를 í¸ì¶í©ëë¤. Function.prototype.bind()-
í¸ì¶ë ë
thisí¤ìëê° ì ê³µë ê°ì¼ë¡ ì¤ì ë ì í¨ì를 ìì±íë©°, ì íì ì¼ë¡ ì í¨ìê° í¸ì¶ë ë ì ê³µë ì¸ì ìì 주ì´ì§ ì¼ë ¨ì ì¸ì를 ì¬ì©í©ëë¤. Function.prototype.call()-
주ì´ì§
thisê°ê³¼ ì íì ì¸ì를 ì¬ì©íì¬ í¨ì를 í¸ì¶í©ëë¤. Function.prototype.toString()-
í¨ìì ìì¤ ì½ë를 ëíë´ë 문ìì´ì ë°íí©ëë¤.
Object.prototype.toStringë©ìë를 ì¬ì ìí©ëë¤. Function.prototype[@@hasInstance]()-
ìì±ì í¨ìê° ê°ì²´ë¥¼ ìì±ìì ì¸ì¤í´ì¤ ì¤ íëë¡ ì¸ìí ì§ ì¬ë¶ë¥¼ ê²°ì íë 기본 ì 차를 ì§ì í©ëë¤.
instanceofì°ì°ìì ìí´ í¸ì¶ë©ëë¤.
ìì
>í¨ì ìì±ìì í¨ì ì ì¸ì ì°¨ì´ì
Function ìì±ì를 ì¬ì©íì¬ ìì±ë í¨ìë ìì± ì»¨í
ì¤í¸ì ëí í´ë¡ì 를 ìì±íì§ ìì¼ë©°, íì ì ì ë²ììì ìì±ë©ëë¤.
í¨ì를 ì¤íí ë Function ìì±ìê° ìì±ë ë²ìì ë³ìê° ìë ìì²´ ë¡ì»¬ ë³ìì ì ì ë³ììë§ ì¡ì¸ì¤í ì ììµëë¤.
ì´ë í¨ì ííìì ëí ì½ëì eval()를 ì¬ì©íë ê²ê³¼ë ë¤ë¦
ëë¤.
// `var`ë¡ ì ì ìì±ì ìì±í©ëë¤
var x = 10;
function createFunction1() {
const x = 20;
return new Function("return x;"); // ì¬ê¸° `x`ë ì ì `x`를 참조í©ëë¤
}
function createFunction2() {
const x = 20;
function f() {
return x; // ì¬ê¸° `x`ë ìì ìë ë¡ì»¬ì `x`를 참조í©ëë¤
}
return f;
}
const f1 = createFunction1();
console.log(f1()); // 10
const f2 = createFunction2();
console.log(f2()); // 20
ì´ ì½ëë ì¹ ë¸ë¼ì°ì ìì ìëíì§ë§ f1()ì x를 ì°¾ì ì ì기 ë문ì Node.jsìì ReferenceErrorê° ë°ìí©ëë¤. ì´ë Nodeì ìµìì ë²ìê° ì ì ë²ìê° ìëë©° xê° ëª¨ëì ë¡ì»¬ì´ê¸° ë문ì
ëë¤.
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-function-objects> |