--- title: Függvény slug: Web/JavaScript/Reference/Global_Objects/Függvény tags: - Függvény - JavaScript - Osztály translation_of: Web/JavaScript/Reference/Global_Objects/Function ---
Minden JavaScript függvény tulajdonképpen egy Function objektum. Ez látható a következő kódnál, amely igazat ad vissza: (function(){}).constructor === Function.
Function objektumot. A konstruktor közvetlen meghívásával dinamikusan hozhatók létre függvények, de ez biztonsági és az {{jsxref("eval")}}hoz hasonló (de sokkal kevésbé jelentős) teljesítménybeli problémáktól szenved. Viszont, az evaltól ellentétben, a Function konstruktor olyan függvényeket hoz létre, melyek mindig a globális hatókörben hajtódnak végre.this értékét a megadott thisArg értékre. Az argumentumok {{jsxref("Array")}} objektumként adhatók át.this értékét a megadott thisArg értékre. Az opcionálisan megadható argumentumsor az új függvény meghívásakor átadott argumentumok elé lesz fűzve.this értékét a megadott értékre. Az argumentumok egyszerűen átadhatók.A Function konstruktorral létrehozott függvények nem hoznak létre zárványt a létrehozási környezetükhöz, mindig a globális hatókörbe kerülnek. Futtatáskor csak a saját helyi változóit és a globálisakat éri el, a Function konstruktor meghívásakor aktív hatókörben szereplőket nem. Ez különbözik az {{jsxref("eval")}} függvénykifejezésen történő használatától.
var x = 10;
function createFunction1() {
var x = 20;
return new Function('return x;'); // az |x| a globális |x|-et jelenti
}
function createFunction2() {
var x = 20;
function f() {
return x; // ez az |x| a fent lévő helyi |x|-et jelenti
}
return f;
}
var f1 = createFunction1();
console.log(f1()); // 10
var f2 = createFunction2();
console.log(f2()); // 20
A kód működik a webböngészőkben, de az f1() ReferenceError hibát okoz Node.js-ben, mert az x nem található. Ez azért van, mert a Node legfelső szintű hatóköre nincs a globális hatókörben, és az x a modulra nézve helyi változó lesz.
| Specification |
|---|
| {{SpecName('ESDraft', '#sec-function-objects', 'Function')}} |
{{Compat("javascript.builtins.Function")}}