--- 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 ---
{{JSRef}}

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.

Konstruktor

{{jsxref("Function/Function", "Function()")}}
Létrehoz egy új 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.

Példánytulajdonságok

{{jsxref("Function.arguments")}}
A függvénynek átadott argumentumokból álló tömb.
A {{jsxref("Function")}} elavult tulajdonsága. Helyette az {{jsxref("Functions/arguments", "arguments")}} objektum (a függvényen belül érhető el) használandó.
{{jsxref("Function.caller")}}
A jelenleg futó függvényt meghívó függvényt adja meg.
Ez a tulajdonság elavult, és csak egyes nem szigorú függvényekben működik.
{{jsxref("Function.displayName")}}
A függvény megjelenítendő neve.
{{jsxref("Function.length")}}
Megadja a függvény által várt argumentumok számát.
{{jsxref("Function.name")}}
A függvény neve.

Példánymetódusok

{{jsxref("Function.prototype.apply()", "Function.prototype.apply(thisArg [, argsArray])")}}
Meghív egy függvényt, és beállítja a this értékét a megadott thisArg értékre. Az argumentumok {{jsxref("Array")}} objektumként adhatók át.
{{jsxref("Function.prototype.bind()", "Function.prototype.bind(thisArg[, arg1[, arg2[, ...argN]]])")}}
Létrehoz egy új függvényt, amely meghívásakor beállítja a 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.
{{jsxref("Function.prototype.call()", "Function.prototype.call(thisArg[, arg1, arg2, ...argN])")}}
Meghív egy függvényt, és beállítja a this értékét a megadott értékre. Az argumentumok egyszerűen átadhatók.
{{jsxref("Function.prototype.toString()", "Function.prototype.toString()")}}
Visszaadja a függvény forráskódját ábrázáló karakterláncot.
Felülírja a {{jsxref("Object.prototype.toString")}} metódust.

Példák

Különbség a Function konstruktor és a függvénydeklaráció között

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.

Specifikációk

Specification
{{SpecName('ESDraft', '#sec-function-objects', 'Function')}}

Böngészőkompatibilitás

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

Lásd még: