ใ“ใฎใƒšใƒผใ‚ธใฏใ‚ณใƒŸใƒฅใƒ‹ใƒ†ใ‚ฃใƒผใฎๅฐฝๅŠ›ใง่‹ฑ่ชžใ‹ใ‚‰็ฟป่จณใ•ใ‚Œใพใ—ใŸใ€‚MDN Web Docs ใ‚ณใƒŸใƒฅใƒ‹ใƒ†ใ‚ฃใƒผใซใคใ„ใฆใ‚‚ใฃใจ็Ÿฅใ‚Šใ€ไปฒ้–“ใซใชใ‚‹ใซใฏใ“ใกใ‚‰ใ‹ใ‚‰ใ€‚

View in English Always switch to English

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 ้žๆŽจๅฅจ; ้žๆจ™ๆบ–

็พๅœจๅฎŸ่กŒใ—ใฆใ„ใ‚‹้–ขๆ•ฐใ‚’ๅ‘ผใณๅ‡บใ—ใŸ้–ขๆ•ฐใ‚’่ฟ”ใ—ใพใ™ใ€‚ๅŽณๆ ผใƒขใƒผใƒ‰ใ€ใ‚ขใƒญใƒผ้–ขๆ•ฐใ€้žๅŒๆœŸ้–ขๆ•ฐใ€ใ‚ธใ‚งใƒใƒฌใƒผใ‚ฟใƒผ้–ขๆ•ฐใซใคใ„ใฆใฏใ€ arguments ใƒ—ใƒญใƒ‘ใƒ†ใ‚ฃใซใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹ใจ TypeError ใŒ็™บ็”Ÿใ—ใพใ™ใ€‚

Function.prototype.constructor

ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ‚’ไฝœๆˆใ—ใŸใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผ้–ขๆ•ฐใ€‚ Function ใฎใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎๅ ดๅˆใ€ๅˆๆœŸๅ€คใฏ Function ใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใงใ™ใ€‚

ไปฅไธ‹ใฎใƒ—ใƒญใƒ‘ใƒ†ใ‚ฃใฏใ€ใใ‚Œใžใ‚Œใฎ Function ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใŒ่‡ชๅˆ†่‡ช่บซใงๆŒใคใƒ—ใƒญใƒ‘ใƒ†ใ‚ฃใงใ™ใ€‚

displayName ้žๆจ™ๆบ– ็œ็•ฅๅฏ

้–ขๆ•ฐใฎ่กจ็คบๅใงใ™ใ€‚

length

้–ขๆ•ฐใซใ‚ˆใฃใฆๆœŸๅพ…ใ•ใ‚Œใ‚‹ๅผ•ๆ•ฐใฎๆ•ฐใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚

name

้–ขๆ•ฐใฎๅๅ‰ใงใ™ใ€‚

prototype

new ๆผ”็ฎ—ๅญไป˜ใใงใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใจใ—ใฆ้–ขๆ•ฐใ‚’ไฝฟ็”จใ™ใ‚‹ๅ ดๅˆใซไฝฟ็”จใ•ใ‚Œใพใ™ใ€‚ๆ–ฐใ—ใ„ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใฎใƒ—ใƒญใƒˆใ‚ฟใ‚คใƒ—ใจใชใ‚Šใพใ™ใ€‚

ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใƒกใ‚ฝใƒƒใƒ‰

Function.prototype.apply()

ๆŒ‡ๅฎšใ•ใ‚ŒใŸ this ๅ€คใจใ‚ชใƒ—ใ‚ทใƒงใƒณใงๅผ•ๆ•ฐใ‚’้…ๅˆ—๏ผˆใพใŸใฏ้…ๅˆ—้ขจใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆ๏ผ‰ใจใ—ใฆๆธกใ—ใ€ๆŒ‡ๅฎšใ•ใ‚ŒใŸ้–ขๆ•ฐใ‚’ๅ‘ผใณๅ‡บใ—ใพใ™ใ€‚

Function.prototype.bind()

ๆ–ฐใ—ใ„้–ขๆ•ฐใ‚’ไฝœๆˆใ—ใ€ๅ‘ผใณๅ‡บใ•ใ‚ŒใŸใจใใซใ€ this ใ‚’ๆŒ‡ๅฎšใ•ใ‚ŒใŸๅ€คใซ่จญๅฎšใ—ใพใ™ใ€‚ใ‚ชใƒ—ใ‚ทใƒงใƒณใงใ€ๆŒ‡ๅฎšใ•ใ‚ŒใŸไธ€้€ฃใฎๅผ•ๆ•ฐใŒใ€ๆ–ฐใ—ใ็ตใณใคใ‘ใ‚‰ใ‚ŒใŸ้–ขๆ•ฐใŒๅ‘ผใณๅ‡บใ•ใ‚ŒใŸใจใใซไธŽใˆใ‚‰ใ‚ŒใŸๅผ•ๆ•ฐใฎๅ‰ใซไป˜ๅŠ ใ•ใ‚Œใพใ™ใ€‚

Function.prototype.call()

ๆŒ‡ๅฎšใ•ใ‚ŒใŸ this ๅ€คใจใ‚ชใƒ—ใ‚ทใƒงใƒณใงๅผ•ๆ•ฐใ‚’ๆธกใ—ใ€ๆŒ‡ๅฎšใ•ใ‚ŒใŸ้–ขๆ•ฐใ‚’ๅ‘ผใณๅ‡บใ—ใพใ™ใ€‚

Function.prototype.toString()

้–ขๆ•ฐใฎใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ใ‚’่กจใ™ๆ–‡ๅญ—ๅˆ—ใ‚’่ฟ”ใ—ใพใ™ใ€‚ Object.prototype.toString ใƒกใ‚ฝใƒƒใƒ‰ใ‚’ไธŠๆ›ธใใ—ใพใ™ใ€‚

Function.prototype[Symbol.hasInstance]()

ใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผ้–ขๆ•ฐใŒใ€ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ‚’ใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใฎใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ 1 ใคใจใ—ใฆ่ช่ญ˜ใ™ใ‚‹ใ‹ใฉใ†ใ‹ใ‚’ๅˆคๆ–ญใ™ใ‚‹ใŸใ‚ใฎใ€ๆ—ขๅฎšใฎๆ‰‹้ †ใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚ instanceof ๆผ”็ฎ—ๅญใซใ‚ˆใฃใฆๅ‘ผใณๅ‡บใ•ใ‚Œใพใ™ใ€‚

ไพ‹

Funciton ใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใจ้–ขๆ•ฐๅฎฃ่จ€ใฎ้•ใ„

Function ใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใง็”Ÿๆˆใ•ใ‚ŒใŸ้–ขๆ•ฐใฏใ€็”Ÿๆˆใ‚ณใƒณใƒ†ใ‚ญใ‚นใƒˆใซใ‚ฏใƒญใƒผใ‚ธใƒฃใ‚’ไฝœใ‚Šใพใ›ใ‚“ใ€‚ใคใพใ‚Šๅธธใซใ‚ฐใƒญใƒผใƒใƒซใ‚นใ‚ณใƒผใƒ—ใง็”Ÿๆˆใ•ใ‚Œใพใ™ใ€‚ใ“ใ‚Œใ‚’ๅฎŸ่กŒใ™ใ‚‹ใจใ€ Function ใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใฎๅ‘ผใณๅ‡บใ—ๅ…ƒใฎใ‚นใ‚ณใƒผใƒ—ใฏๅ…ฅใ‚‰ใšใ€่‡ช่บซใฎใƒญใƒผใ‚ซใƒซๅค‰ๆ•ฐใจใ‚ฐใƒญใƒผใƒใƒซๅค‰ๆ•ฐใ ใ‘ใซใ‚ขใ‚ฏใ‚ปใ‚นใงใใพใ™ใ€‚ใ“ใ‚Œใฏ้–ขๆ•ฐๅผใฎใ‚ณใƒผใƒ‰ใซ eval() ใ‚’ไฝฟใ†ใฎใจใฏ็•ฐใชใ‚Šใพใ™ใ€‚

js
// `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

ใ“ใฎใ‚ณใƒผใƒ‰ใฏใ‚ฆใ‚งใƒ–ใƒ–ใƒฉใ‚ฆใ‚ถใƒผใงใฏๅ‹•ไฝœใ—ใพใ™ใŒใ€ Node.js ใงใฏ f1() ใง ReferenceError ใŒ็™บ็”Ÿใ—ใพใ™ใ€‚ x ใŒ่ฆ‹ใคใ‹ใ‚‰ใชใ„ใŸใ‚ใงใ™ใ€‚ใ“ใ‚Œใฏ Node ใฎๆœ€ไธŠไฝใฎใ‚นใ‚ณใƒผใƒ—ใŒใ‚ฐใƒญใƒผใƒใƒซใ‚นใ‚ณใƒผใƒ—ใงใฏใชใใ€ x ใฏใƒขใ‚ธใƒฅใƒผใƒซใฎใƒญใƒผใ‚ซใƒซใซใชใ‚‹ใ‹ใ‚‰ใงใ™ใ€‚

ไป•ๆง˜ๆ›ธ

Specification
ECMAScriptยฎ 2026 Language Specification
# sec-function-objects

ใƒ–ใƒฉใ‚ฆใ‚ถใƒผใฎไบ’ๆ›ๆ€ง

้–ข้€ฃๆƒ…ๅ ฑ