譛ャ鬆√�逶ョ谺。 逶ョ谺。 谺。鬆�: 15-4_Array_Objects 蜑埼��: 15-2_Object_Objects
Function 縺後さ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ィ縺励※縺ァ縺ッ縺ェ縺城未謨ー縺ィ縺励※蜻シ蜃コ縺輔l繧句�エ蜷医√◎繧後�譁ー縺励> Function 繧ェ繝悶ず繧ァ繧ッ繝医r菴懈�縺怜�譛溷喧縺吶k縲ゅ@縺溘′縺」縺ヲ縲�未謨ー蜻シ縺ウ蜃コ縺� Function(窶ヲ) 縺ッ縲∝酔縺伜シ墓焚繧偵→繧九が繝悶ず繧ァ繧ッ繝育函謌仙シ� new
Function(窶ヲ) 縺ィ遲我セ。縺ァ縺ゅk縲�
Function 髢「謨ー縺後≠繧句シ墓焚 p1, p2, 窶ヲ, pn, body (n 縺� 0縲√▽縺セ繧翫�"p" 蠑墓焚縺後↑縺�°繧ゅ@繧後★縲� body 繧よ署萓帙&繧後↑縺�°繧ゅ@繧後↑縺�) 縺ァ蜻シ蜃コ縺輔l繧句�エ蜷医∵ャ。縺ョ繧ケ繝�ャ繝励′蜿悶i繧後k:
Function 縺� new
蠑上�荳驛ィ縺ァ蜻シ蜃コ縺輔l繧九→縺阪√◎繧後�繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ァ縺ゅk: 縺昴l縺ッ譁ー縺溘↓逕滓�縺輔l縺溘が繝悶ず繧ァ繧ッ繝医r蛻晄悄蛹悶☆繧九�
譛蠕後�蠑墓焚縺ッ縲�未謨ー縺ョ譛ャ譁�(螳溯。悟庄閭ス縺ェ繧ウ繝シ繝�)繧呈欠螳壹☆繧�; 蜈郁。後☆繧句シ墓焚縺ッ莉ョ蠑墓焚繧呈欠螳壹☆繧九�Function 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺後′縺ゅk蠑墓焚 p1, p2, 窶ヲ, pn, body (n 縺� 0縲√▽縺セ繧翫�"p" 蠑墓焚縺後↑縺�°繧ゅ@繧後★縲� body 繧よ署萓帙&繧後↑縺�°繧ゅ@繧後↑縺�) 縺ァ蜻シ蜃コ縺輔l繧句�エ蜷医∵ャ。縺ョ繧ケ繝�ャ繝励′蜿悶i繧後k:
prototype 繝励Ο繝代ユ繧」縺ッ縲�未謨ー縺後さ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ィ縺励※菴ソ逕ィ縺輔l繧句庄閭ス諤ァ縺ォ蛯吶∴縲√☆縺ケ縺ヲ縺ョ髢「謨ー縺ォ閾ェ蜍慕噪縺ォ菴懈�縺輔l繧九�
NOTE 謖�ョ壹&繧後k蜷�サョ蠑墓焚縺ョ縺溘a縺ォ 1 蠑墓焚繧呈戟縺、縺ョ縺ッ險ア螳ケ縺輔l繧九′縲∝ソ��医〒縺ッ縺ェ縺��
萓九∴縺ー縲∵ャ。縺ョ 3 縺、縺ョ陦ィ迴セ縺ッ縺吶∋縺ヲ蜷後§邨先棡繧堤函繧:
new Function("a", "b", "c", "return a+b+c") new Function("a, b, c", "return a+b+c") new Function("a,b", "c", "return a+b+c")
Function 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ョ蜀�Κ [[Prototype]] 繝励Ο繝代ユ繧」縺ッ Function 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝� (15.3.4) 縺ァ縺ゅk縲� 蜀�Κ繝励Ο繝代ユ繧」縺ィ length 繝励Ο繝代ユ繧」 (蛟、縺ッ1) 縺ョ莉悶↓縲� Function 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ッ谺。縺ョ繝励Ο繝代ユ繧」繧呈戟縺、:
Function.prototype 縺ョ蛻晄悄蛟、縺ッ Function 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝� (15.3.4) 縺ァ縺ゅk縲�
縺薙�繝励Ο繝代ユ繧」縺ッ螻樊ァ { DontEnum, DontDelete, ReadOnly } 縺ァ縺ゅk縲�
Function 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医�縺昴l閾ェ菴薙′ Function 繧ェ繝悶ず繧ァ繧ッ繝医〒縺ゅj (縺昴� [[Class]] 縺� "Function" 縺ァ縺ゅk)縲∬オキ蜍輔&繧後◆譎ゅ√←繧薙↑蠑墓焚繧ょ女縺台サ倥¢縲「ndefined 繧定ソ斐☆縲�
Function 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医�蜀�Κ [[Prototype]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲^bject 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝�(15.3.2.1) 縺ァ縺ゅk縲�
縺昴l縺ッ "遨コ縺ョ譛ャ譁�" 繧偵b縺、繝輔ぃ繝ウ繧ッ繧キ繝ァ繝ウ縺ァ縺ゅk; 蜻シ縺ウ蜃コ縺輔l繧後�縲∝腰縺ォ undefined 繧定ソ斐☆縲�
Function 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医�縲∬�蛻��霄ォ縺ョ valueOf 繝励Ο繝代ユ繧」繧呈戟縺溘↑縺�; 縺�縺後^bject 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医� valueOf 繝励Ο繝代ユ繧」繧堤カ呎価縺吶k縲�
Function.prototype.constructor 縺ョ蛻晄悄蛟、縺ッ縲∫オ�セシ縺ソ Function 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ァ縺ゅk縲�
髢「謨ー縺ョ螳溯」�セ晏ュ倥�陦ィ迴セ縺瑚ソ斐&繧後k縲ゅ%縺ョ陦ィ迴セ縺ッ FunctionDeclaration 縺ョ讒区枚繧呈戟縺、縲り。ィ迴セ譁�ュ怜�蜀��遨コ逋ス縲∬。檎オらォッ蟄舌√そ繝溘さ繝ュ繝ウ縺ョ菴ソ逕ィ蜿翫�驟咲スョ縺ッ螳溯」�セ晏ュ倥〒縺ゅk縺薙→縺ォ迚ケ縺ォ豕ィ諢上�
toString
髢「謨ー縺ッ豎守畑逧�〒縺ッ縺ェ縺�; 縺昴� this
蛟、縺� Function 繧ェ繝悶ず繧ァ繧ッ繝医〒縺ェ縺代l縺ー縲∽セ句、� TypeError 繧呈兜縺偵k縲ゅ◎繧後f縺医√Γ繧ス繝�ラ縺ィ縺励※莉悶�遞ョ鬘槭�繧ェ繝悶ず繧ァ繧ッ繝医↓霆「逕ィ縺ァ縺阪↑縺��
apply
繝。繧ス繝�ラ縺ッ 2 縺、縺ョ蠑墓焚縲� thisArg 縺翫h縺ウ argArray 繧偵→繧翫√が繝悶ず繧ァ繧ッ繝医� [[Call]] 繝励Ο繝代ユ繧」繧剃スソ逕ィ縺励※縲�未謨ー蜻シ蜃コ縺励r螳溯。後☆繧九ゅが繝悶ず繧ァ繧ッ繝医′ [[Call]] 繝励Ο繝代ユ繧」繧呈戟縺」縺ヲ縺�↑縺��エ蜷医∽セ句、� TypeError 縺梧兜縺偵i繧後k縲�
thisArg 縺� null 縺セ縺溘� undefined 縺ョ蝣エ蜷医∝他蜃コ縺輔l縺滄未謨ー縺ッ this
蛟、縺ィ縺励※繧ー繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医r貂。縺輔l繧九ゅ◎縺�〒縺ェ縺代l縺ー縲∝他蜃コ縺輔l縺滄未謨ー縺ッ this
蛟、縺ィ縺励※ ToObject(thisArg) 繧呈ク。縺輔l繧九�
argArray 縺� null 縺セ縺溘� undefined 縺ョ蝣エ蜷医∝他蜃コ縺輔l縺滄未謨ー縺ッ蠑墓焚繧呈ク。縺輔l縺ェ縺�ゅ◎縺�〒縺ェ縺代l縺ー縲� argArray 縺碁�蛻励〒繧� arguments 繧ェ繝悶ず繧ァ繧ッ繝� (10.1.8 蜿ら�) 縺ァ繧ゅ↑縺��エ蜷医∽セ句、� TypeError 縺梧兜縺偵i繧後k縲� argArray縺� 驟榊�縺セ縺溘� arugments 繧ェ繝悶ず繧ァ繧ッ繝医�縺�★繧後°縺ァ縺ゅk蝣エ蜷医�未謨ー縺ッ (ToUint32(argArray.length)) 蛟九�蠑墓焚argArray[0], argArray[1], ... argArray[ToUint32(argArray.length)-1] 繧呈ク。縺輔l繧九�
apply
繝。繧ス繝�ラ縺ョ length 繝励Ο繝代ユ繧」縺ッ 2 縺ァ縺ゅk縲�
call
繝。繧ス繝�ラ縺ッ 1 縺、莉・荳翫�蠑墓焚繧貞叙繧翫�thisArg 縺翫h縺ウ(驕ク謚樒噪縺ォ) arg1, arg2, ... 繧偵→繧翫√が繝悶ず繧ァ繧ッ繝医�[[Call]] 繝励Ο繝代ユ繧」繧剃スソ逕ィ縺励※縲�未謨ー蜻シ縺ウ蜃コ縺励r螳溯。後☆繧九ゅが繝悶ず繧ァ繧ッ繝医′ [[Call]] 繝励Ο繝代ユ繧」繧呈戟縺」縺ヲ縺�↑縺��エ蜷医ゝypeError 萓句、悶′謚輔£繧峨l繧九ょ他蜃コ縺輔l縺滄未謨ー縺ッ縲∝シ墓焚縺ィ縺励※ arg1縲�arg2 縺ェ縺ゥ繧呈ク。縺輔l繧九� thisArg 縺� null 縺セ縺溘� undefined 縺ョ蝣エ蜷医∝他蜃コ縺輔l縺滄未謨ー縺ッ this
蛟、縺ィ縺励※繧ー繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医r貂。縺輔l繧九ゅ◎縺�〒縺ェ縺代l縺ー縲∝他蜃コ縺輔l縺滄未謨ー縺ッ this
蛟、縺ィ縺励※ ToObject(thisArg) 繧呈ク。縺輔l繧九� call
繝。繧ス繝�ラ縺ョ length 繝励Ο繝代ユ繧」縺ッ 1 縺ァ縺ゅk縲�
蠢��医�蜀�Κ繝励Ο繝代ユ繧」縺ォ蜉�縺医※縲∝推繝輔ぃ繝ウ繧ッ繧キ繝ァ繝ウ螳滉ス薙� [[Call]] 繝励Ο繝代ユ繧」縲� [[Construct]] 繝励Ο繝代ユ繧」縲� [[Scope]] 繝励Ο繝代ユ繧」 (8.6.2 蜿翫� 13.2 繧貞盾辣ァ) 繧呈戟縺、縲�[[Class]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ "Function" 縺ァ縺ゅk縲�
length 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ騾壼クク縲�未謨ー縺ォ譛溷セ�&繧後k "蜈ク蝙狗噪縺ェ" 蠑墓焚縺ョ謨ー繧堤、コ縺呎紛謨ー\縺ァ縺ゅk縲ゅ□縺後∬ィ隱槭�縺昴l莉・螟悶�謨ー縺ョ蠑墓焚\縺ァ髢「謨ー縺悟他縺ウ蜃コ縺輔l繧九%縺ィ繧定ィア縺吶�length 繝励Ο繝代ユ繧」縺ォ繧医▲縺ヲ謖�ョ壹&繧後k莉・螟悶�謨ー縺ョ蠑墓焚\縺ァ蜻シ縺ウ蜃コ縺輔l縺滓凾縺ョ髢「謨ー縺ョ謖ッ闊槭>縺ッ縲�未謨ー縺ォ萓晏ュ倥☆繧九ゅ%縺ョ繝励Ο繝代ユ繧」縺ッ螻樊ァ { DontDelete, ReadOnly, DontEnum } 縺ァ縺ゅk縲�
prototype 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲:unction 繧ェ繝悶ず繧ァ繧ッ繝医′繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ィ縺励※蜻シ蜃コ縺輔l繧句燕縺ォ縲∵眠縺励¥菴懈�縺輔l繧九が繝悶ず繧ァ繧ッ繝医�蜀�Κ [[prototype]] 繝励Ο繝代ユ繧」縺ョ蛻晄悄蛹悶↓菴ソ逕ィ縺輔l繧九ゅ%縺ョ繝励Ο繝代ユ繧」縺ッ螻樊ァ { DontDelete } 縺ァ縺ゅk縲�
F 繧� Function 繧ェ繝悶ず繧ァ繧ッ繝医→莉ョ螳壹☆繧九�F 縺ョ [[HasInstance]] 繝。繧ス繝�ラ縺悟、 V 縺ァ蜻シ蜃コ縺輔l繧九→縺阪∵ャ。縺ョ繧ケ繝�ャ繝励′蜿悶i繧後k��