譛ャ鬆√�逶ョ谺。 逶ョ谺。

10 螳溯。後さ繝ウ繝�く繧ケ繝� (Execution Contexts)

蛻カ蠕。縺� ECMAScript 縺ョ螳溯。悟庄閭ス繧ウ繝シ繝峨↓霆「騾√&繧後k譎ゅ↓縲∝宛蠕。縺ッ 螳溯。後さ繝ウ繝�く繧ケ繝� 縺ォ蜈・繧九€ゅい繧ッ繝�ぅ繝悶↑螳溯。後さ繝ウ繝�く繧ケ繝医�隲也炊逧�↓繧ケ繧ソ繝�け繧貞ス「謌舌☆繧九€ゅ%縺ョ隲也炊逧�せ繧ソ繝�け荳翫�螳溯。後さ繝ウ繝�く繧ケ繝医�鬆らせ縺後€∝ョ溯。後&繧後k螳溯。後さ繝ウ繝�く繧ケ繝医〒縺ゅk縲�

10.1 螳夂セゥ (Definitions)

10.1.1 Function 繧ェ繝悶ず繧ァ繧ッ繝� (Function Objects)

Function 繧ェ繝悶ず繧ァ繧ッ繝医↓縺ッ 2 遞ョ鬘槭≠繧�:

  • 繝励Ο繧ー繝ゥ繝�髢「謨ー 縺ッ縲√た繝シ繧ケ繝�く繧ケ繝亥�縺ォ FunctionDeclaration 縺ァ螳夂セゥ縺輔l繧九€ゅ≠繧九>縺ッ縲� FunctionExpression 縺九さ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ィ縺励※縺ョ邨�セシ縺ソ Function 繧ェ繝悶ず繧ァ繧ッ繝医r菴ソ逕ィ縺励※蜍慕噪縺ォ逕滓�縺輔l繧九€�
  • 蜀�Κ髢「謨ー 縺ッ縲� parseInt 繧� Math.exp 縺ョ繧医≧縺ェ縲∬ィ€隱槭�邨�セシ縺ソ繧ェ繝悶ず繧ァ繧ッ繝医〒縺ゅk縲ょョ溯」��縲∵悽莉墓ァ倥↓險倩ソー縺輔l縺ェ縺�ョ溯」�セ晏ュ倥�蜀�Κ髢「謨ー繧呈署萓帙@縺ヲ繧ゅh縺�€ゅ%繧後i縺ョ髢「謨ー縺ッ ECMAScript 譁�ウ輔↓險倩ソー縺輔l繧句ョ溯。悟庄閭ス繧ウ繝シ繝峨r蜷ォ縺セ縺ェ縺�€ょセ薙▲縺ヲ縺昴l繧峨�螳溯。後さ繝ウ繝�く繧ケ繝医�縺薙�隴ー隲悶°繧蛾勁螟悶&繧後k縲�

10.1.2 螳溯。悟庄閭ス繧ウ繝シ繝峨�遞ョ鬘� (Types of Executable Code)

ECMAScript 縺ョ螳溯。悟庄閭ス繧ウ繝シ繝峨�遞ョ鬘槭� 3 縺、縺ゅk:

  • 繧ー繝ュ繝シ繝舌Ν繧ウ繝シ繝� 縺ッ ECMAScript 縺ョ Program 縺ィ縺励※謇ア繧上l繧九た繝シ繧ケ繝�く繧ケ繝医〒縺ゅk縲ょ€九€�� Program 縺ョ繧ー繝ュ繝シ繝舌Ν繧ウ繝シ繝峨� FunctionBody 驛ィ蛻�→縺励※隗」譫舌&繧後k繧ス繝シ繧ケ繝�く繧ケ繝医r蜷ォ縺セ縺ェ縺�€�
  • eval 繧ウ繝シ繝� 縺ッ邨�セシ縺ソ eval 髢「謨ー縺ォ謠蝉セ帙&繧後k繧ス繝シ繧ケ繝�く繧ケ繝医〒縺ゅk縲ゅh繧頑ュ」遒コ縺ォ縺ッ縲∫オ�セシ縺ソ eval 髢「謨ー縺ョ繝代Λ繝。繝シ繧ソ縺梧枚蟄怜�縺ェ繧峨€√◎繧後� ECMAScript 縺ョ Program 縺ィ縺励※謇ア繧上l繧九€ょ€九€�� eval 蜻シ縺ウ蜃コ縺励�縺溘a縺ョ eval 繧ウ繝シ繝峨�縲∵枚蟄怜�繝代Λ繝。繝シ繧ソ縺ョ繧ー繝ュ繝シ繝舌Ν繧ウ繝シ繝蛾Κ蛻�〒縺ゅk縲�
  • 髢「謨ー繧ウ繝シ繝� 縺ッ FunctionBody 驛ィ蛻�→縺励※隗」譫舌&繧後k繧ス繝シ繧ケ繝�く繧ケ繝医〒縺ゅk縲ょ€九€�� FunctionBody 縺ョ髢「謨ー繧ウ繝シ繝峨�縲√ロ繧ケ繝医&繧後◆ FunctionBody 驛ィ蛻�→縺励※隗」譫舌&繧後k繧ス繝シ繧ケ繝�く繧ケ繝医r蜷ォ縺セ縺ェ縺�€る未謨ー繧ウ繝シ繝峨�縺セ縺溘€√さ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ィ縺励※邨�セシ縺ソ Function 繧ェ繝悶ず繧ァ繧ッ繝医r菴ソ逕ィ縺吶k髫帶署萓帙&繧後k繧ス繝シ繧ケ繝�く繧ケ繝医b縺ゅi繧上☆縲ゅh繧頑ュ」遒コ縺ォ縺ッ縲� Function 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ォ謠蝉セ帙&繧後k譛€蠕後�繝代Λ繝。繝シ繧ソ縺ッ譁�ュ怜�縺ォ螟画鋤縺輔l FunctionBody 縺ィ縺励※謇ア繧上l繧九€� Function 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ォ縺イ縺ィ縺、莉・荳翫�繝代Λ繝。繝シ繧ソ縺御セ帷オヲ縺輔l繧後�縲∵怙蠕後�荳€縺、繧帝勁縺�◆谿九j縺ョ繝代Λ繝。繝シ繧ソ縺吶∋縺ヲ縺梧枚蟄怜�縺ォ螟画鋤縺輔l縲√き繝ウ繝槭r蛹コ蛻�j縺ォ騾」邨舌&繧後k縲ゅ◎縺ョ邨先棡縺ョ譁�ュ怜�縺ッ譛€蠕後�繝代Λ繝。繝シ繧ソ縺ァ螳夂セゥ縺輔l繧� FunctionBody 縺ョ縺溘a縺ョ FormalParameterList 縺ィ縺励※隗」驥医&繧後k縲� Function 縺ョ蛟九€��繧、繝ウ繧ケ繧ソ繝ウ繧ケ蛹悶�縺溘a縺ョ髢「謨ー繧ウ繝シ繝峨�繝阪せ繝医&繧後◆ FunctionBody 驛ィ蛻�→縺励※隗」譫舌&繧後k繧ス繝シ繧ケ繝�く繧ケ繝医r蜷ォ縺セ縺ェ縺�€�

10.1.3 螟画焚縺ョ螳滉ス灘喧 (Variable Instantiation)

蜷�ョ溯。後さ繝ウ繝�く繧ケ繝医� 螟画焚繧ェ繝悶ず繧ァ繧ッ繝� (variable object) 縺ォ邨舌�莉倥¢繧峨l縺ヲ縺�k縲ゅた繝シ繧ケ繝�く繧ケ繝亥�縺ォ螳」險€縺輔l縺溷、画焚縺ィ髢「謨ー縺ッ螟画焚繧ェ繝悶ず繧ァ繧ッ繝医�繝励Ο繝代ユ繧」縺ォ霑ス蜉�縺輔l繧九€る未謨ー繧ウ繝シ繝峨↓縺、縺�※縺ッ縲√ヱ繝ゥ繝。繝シ繧ソ縺悟、画焚繧ェ繝悶ず繧ァ繧ッ繝医�繝励Ο繝代ユ繧」縺ォ霑ス蜉�縺輔l繧九€�

縺ゥ縺ョ繧ェ繝悶ず繧ァ繧ッ繝医′螟画焚繧ェ繝悶ず繧ァ繧ッ繝医↓菴ソ繧上l繧九°縲√←縺ョ螻樊€ァ縺後�繝ュ繝代ユ繧」縺ォ菴ソ繧上l繧九°縺ッ縲√さ繝シ繝峨�蝙九↓萓晏ュ倥☆繧九€ゅ@縺九@縲∝セ後�謖ッ繧玖�縺��邱乗峡逧�〒縺ゅk縲ょョ溯。後さ繝ウ繝�く繧ケ繝医↓蜈・繧九→縲√�繝ュ繝代ユ繧」縺ッ谺。縺ョ鬆�↓螟画焚繧ェ繝悶ず繧ァ繧ッ繝医↓邨舌�莉倥¢繧峨l繧�:

  • 髢「謨ー繧ウ繝シ繝峨〒縺ッ: FormalParameterList 縺ァ螳夂セゥ縺輔l縺滉サョ蠑墓焚縺斐→縺ォ縲∝、画焚繧ェ繝悶ず繧ァ繧ッ繝医↓繝励Ο繝代ユ繧」繧堤函謌舌☆繧九€ゅ◎縺ョ蜷榊燕縺ッ Identifier 縺ァ縲∝ア樊€ァ縺ッ繧ウ繝シ繝牙梛縺ォ繧医▲縺ヲ豎コ螳壹☆繧九€ゅヱ繝ゥ繝。繝シ繧ソ蛟、縺ッ蜻シ蜃コ蛛エ縺ォ繧医▲縺ヲ [[Call]] 縺ョ蠑墓焚縺ィ縺励※萓帷オヲ縺輔l繧九€ょ他蜃コ蛛エ縺御サョ蠑墓焚繧医j蟆代↑縺�ヱ繝ゥ繝。繝シ繧ソ蛟、繧剃セ帷オヲ縺吶k縺ェ繧峨�縲∽ス吝�縺ェ莉ョ蠑墓焚縺ッ蛟、 undefined 繧呈戟縺、縲� 2 縺、莉・荳翫�莉ョ蠑墓焚縺悟酔縺伜錐蜑阪�縺溘a縺ォ蜷後§繝励Ο繝代ユ繧」繧貞�譛峨☆繧句�エ蜷医€∬ゥイ蠖薙☆繧九�繝ュ繝代ユ繧」縺ッ縲∝セ悟�縺ョ繝代Λ繝。繝シ繧ソ縺ォ萓帷オヲ縺輔l縺溷€、繧剃ク弱∴繧峨l繧九€ゅ%縺ョ蠕悟�縺ョ繝代Λ繝。繝シ繧ソ蛟、縺悟他蜃コ蛛エ縺九i萓帷オヲ縺輔l縺ェ縺��エ蜷医€∬ゥイ蠖薙☆繧九�繝ュ繝代ユ繧」縺ョ蛟、縺ッ undefined 縺ァ縺ゅk縲�
  • 繧ス繝シ繧ケ繝�く繧ケ繝磯��〒縲√さ繝シ繝我クュ縺ョ蜷� FunctionDeclaration 豈弱↓縲∝、画焚繧ェ繝悶ず繧ァ繧ッ繝医↓繝励Ο繝代ユ繧」繧堤函謌舌☆繧九€ゅ◎縺ョ蜷榊燕縺ッ FunctionDeclaration 縺ョ Identifier 縺ァ縲∝€、縺ォ縺ッ繧サ繧ッ繧キ繝ァ繝ウ 13 縺ォ險倩ソー縺輔l繧� Function 繧ェ繝悶ず繧ァ繧ッ繝医�逕滓�縺ァ霑斐&繧後k邨先棡縺瑚ィュ螳壹&繧後€∝ア樊€ァ縺ッ繧ウ繝シ繝峨�蝙九↓繧医▲縺ヲ豎コ螳壹☆繧九€ょ、画焚繧ェ繝悶ず繧ァ繧ッ繝医′譌「縺ォ縺薙�蜷榊燕縺ョ繝励Ο繝代ユ繧」繧呈戟縺」縺ヲ縺�k蝣エ蜷医€√◎縺ョ蛟、縺ィ螻樊€ァ繧堤スョ謠帙☆繧九€よэ蜻ウ隲也噪縺ォ縲√%縺ョ繧ケ繝�ャ繝励� FormalParameterList 繝励Ο繝代ユ繧」縺ョ逕滓�縺ォ邯壹°縺ェ縺代l縺ー縺ェ繧峨↑縺�€�
  • 繧ウ繝シ繝我クュ縺ョ蜷� VariableDeclaration 縺ゅk縺�� VariableDeclarationNoIn 豈弱↓縲∝、画焚繧ェ繝悶ず繧ァ繧ッ繝医↓繝励Ο繝代ユ繧」繧堤函謌舌☆繧九€ゅ◎縺ョ蜷榊燕縺ッ VariableDeclaration 縺セ縺溘� VariableDeclarationNoIn 荳ュ縺ョ Identifier 縺ァ縲∝€、縺ッ undefined 縲∝ア樊€ァ縺ッ繧ウ繝シ繝峨�蝙九↓繧医j豎コ螳壹☆繧九€ょ、画焚繧ェ繝悶ず繧ァ繧ッ繝医′譌「縺ォ縺薙�蜷榊燕縺ョ繝励Ο繝代ユ繧」繧呈戟縺」縺ヲ縺�k蝣エ蜷医€√�繝ュ繝代ユ繧」縺ョ蛟、縺ィ螻樊€ァ縺ッ螟画峩縺輔l縺ェ縺�€よэ蜻ウ隲也噪縺ォ縲√%縺ョ繧ケ繝�ャ繝励� FormalParameterList 縺ィ FunctionDeclaration 縺ョ繝励Ο繝代ユ繧」逕滓�縺ォ邯壹°縺ェ縺代l縺ー縺ェ繧峨↑縺�€ょョ」險€縺輔l繧句、画焚縺後€∝ョ」險€縺輔l縺滄未謨ー繧�サョ蠑墓焚縺ィ蜷後§蜷榊燕繧呈戟縺」縺ヲ縺�k蝣エ蜷医€∝、画焚螳」險€縺ッ迚ケ縺ォ譌「蟄倥�繝励Ο繝代ユ繧」繧貞ヲィ螳ウ縺励↑縺�€�

10.1.4 繧ケ繧ウ繝シ繝鈴€」骼悶→隴伜挨蟄舌�隗」豎コ (Scope Chain and Identifier Resolution)

蜷�ョ溯。後さ繝ウ繝�く繧ケ繝医� 繧ケ繧ウ繝シ繝鈴€」骼� (scope chain) 縺ォ髢「騾」莉倥¢繧峨l縺ヲ縺�k縲ゅせ繧ウ繝シ繝鈴€」骼悶�繧ェ繝悶ず繧ァ繧ッ繝医�繝ェ繧ケ繝医〒縲!dentifier 縺ョ隧穂セ。縺ョ髫帙↓讀懃エ「縺輔l繧九€ょ宛蠕。縺悟ョ溯。後さ繝ウ繝�く繧ケ繝医↓蜈・繧九→縺阪€√さ繝シ繝牙梛豈弱↓繧ェ繝悶ず繧ァ繧ッ繝磯寔蜷医�蛻晄悄蛟、繧剃シエ縺�せ繧ウ繝シ繝鈴€」骼悶′逕滓�縺輔l縲∫オ�∩霎シ縺セ繧後k縲ょョ溯。後さ繝ウ繝�く繧ケ繝亥�縺ォ縺翫¢繧句ョ溯。後�髢薙€∝ョ溯。後さ繝ウ繝�く繧ケ繝医�繧ケ繧ウ繝シ繝鈴€」骼悶� with 譁�(12.10) 縺ィ catch 繧ッ繝ュ繝シ繧コ(12.14) 縺ォ繧医▲縺ヲ縺ョ縺ソ蠖ア髻ソ繧貞所縺シ縺輔l繧九€�

螳溯。御クュ縲∵ァ区枚逧�函謌占ヲ丞援 PrimaryExpression : Identifier 縺ッ谺。縺ョ繧「繝ォ繧エ繝ェ繧コ繝�縺ァ隧穂セ。縺輔l繧�:

  1. 繧ケ繧ウ繝シ繝鈴€」骼門�縺ァ谺。縺ョ繧ェ繝悶ず繧ァ繧ッ繝医r蜿門セ励☆繧九€ゆク€縺、繧ゅ↑縺代l縺ー縲√せ繝�ャ繝� 5繝倥€�
  2. Result(1) 縺ョ [[HasProperty]] 繝。繧ス繝�ラ繧貞他縺ウ縲√�繝ュ繝代ユ繧」縺ィ縺励※ Identifier 繧呈ク。縺吶€�
  3. Result(2) 縺� true 縺ェ繧峨�縲∝渕貅悶が繝悶ず繧ァ繧ッ繝医′ Result(1) 縺ァ繝励Ο繝代ユ繧」蜷阪′ Identifier 縺ァ縺ゅk Reference 蝙九�蛟、繧定ソ斐☆縲�
  4. 繧ケ繝�ャ繝� 1 縺ク縲�
  5. 蝓コ貅悶が繝悶ず繧ァ繧ッ繝医′ null 縺ァ繝励Ο繝代ユ繧」蜷阪′ Identifier 縺ァ縺ゅk Reference 蝙九�蛟、繧定ソ斐☆縲�

隴伜挨蟄占ゥ穂セ。縺ョ邨先棡縺ッ蟶ク縺ォ縲∬ュ伜挨蟄先枚蟄怜�縺ィ遲峨@縺�Γ繝ウ繝仙錐謌仙�繧呈戟縺、 Reference 蝙九�蛟、縺ァ縺ゅk縲�

10.1.5 Global 繧ェ繝悶ず繧ァ繧ッ繝� (Global Object)

蛻カ蠕。縺御ササ諢上�螳溯。後さ繝ウ繝�く繧ケ繝医↓蜈・繧句燕縺ォ逕滓�縺輔l繧九€∽ク€諢冗噪縺ェ 繧ー繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝� (繧サ繧ッ繧キ繝ァ繝ウ15.1) 縺悟ュ伜惠縺吶k縲よ怙蛻昴�繧ー繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医�谺。縺ョ繝励Ο繝代ユ繧」繧呈戟縺、:

  • Math, String, Date, parseInt 遲峨�繧医≧縺ェ邨�セシ縺ソ繧ェ繝悶ず繧ァ繧ッ繝医€ゅ%繧後i縺ッ螻樊€ァ { DontEnum } 繧呈戟縺、縲�
  • 繝帙せ繝医�螳夂セゥ縺吶k霑ス蜉�繝励Ο繝代ユ繧」縲ゅ%繧後�繧ー繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝郁�霄ォ繧貞€、縺ィ縺吶k繝励Ο繝代ユ繧」繧貞性繧√※繧医>; 縺溘→縺医�縲?TML 譁�嶌繧ェ繝悶ず繧ァ繧ッ繝医Δ繝�Ν縺ォ縺翫¢繧九げ繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医� window 繝励Ο繝代ユ繧」縺ッ縲√げ繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医◎繧瑚�霄ォ縺ァ縺ゅk縲�

蛻カ蠕。縺悟ョ溯。後さ繝ウ繝�く繧ケ繝医↓蜈・繧翫€・CMAScript 繧ウ繝シ繝峨′螳溯。後&繧後l縺ー縲√げ繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医↓霑ス蜉�繝励Ο繝代ユ繧」繧定ソス蜉�縺励※繧ゅ€∝�譛溘�繝励Ο繝代ユ繧」繧貞、画峩縺励※繧ゅh縺�€�

10.1.6 Activation 繧ェ繝悶ず繧ァ繧ッ繝� (Activation Object)

髢「謨ー繧ウ繝シ繝峨↓繧医▲縺ヲ蛻カ蠕。縺悟ョ溯。後さ繝ウ繝�く繧ケ繝医↓蜈・繧九→縺阪€� Activation 繧ェ繝悶ず繧ァ繧ッ繝医→蜻シ縺ー繧後k繧ェ繝悶ず繧ァ繧ッ繝医′逕滓�縺輔l螳溯。後さ繝ウ繝�く繧ケ繝医↓邨舌�莉倥¢繧峨l繧九€� Activation 繧ェ繝悶ず繧ァ繧ッ繝医�螻樊€ァ { DontDelete } 縺ョ繝励Ο繝代ユ繧」 arguments 縺ァ蛻晄悄蛹悶&繧後k縲ゅ%縺ョ繝励Ο繝代ユ繧」縺ョ蛻晄悄蛟、縺ッ荳九↓霑ー縺ケ繧� arguments 繧ェ繝悶ず繧ァ繧ッ繝医〒縺ゅk縲�

Activation 繧ェ繝悶ず繧ァ繧ッ繝医�螟画焚縺ョ螳滉ス灘喧繧堤岼逧�→縺励◆螟画焚繧ェ繝悶ず繧ァ繧ッ繝医→縺励※菴ソ逕ィ縺輔l繧九€�

Activation 繧ェ繝悶ず繧ァ繧ッ繝医�邏皮イ九↓莉墓ァ倥�繝。繧ォ繝九ぜ繝�縺ァ縺ゅk縲� Activation 繧ェ繝悶ず繧ァ繧ッ繝医∈縺ョ繧「繧ッ繧サ繧ケ縺ッ ECMAScript 繝励Ο繧ー繝ゥ繝�縺ォ縺ッ荳榊庄閭ス縺ァ縺ゅk縲� Activation 繧ェ繝悶ず繧ァ繧ッ繝医�繝。繝ウ繝舌∈縺ョ繧「繧ッ繧サ繧ケ縺ッ蜿ッ閭ス縺�縺後€� Activation 繧ェ繝悶ず繧ァ繧ッ繝郁�霄ォ縺ク縺ョ繧「繧ッ繧サ繧ケ縺ッ縺ァ縺阪↑縺�€ょ渕貅悶が繝悶ず繧ァ繧ッ繝医′ Activation 繧ェ繝悶ず繧ァ繧ッ繝医〒縺ゅk Reference 蛟、縺ォ蜻シ蜃コ謫堺ス懊′驕ゥ逕ィ縺輔l繧九→縺阪€√◎縺ョ蜻シ蜃コ縺ョ this 蛟、縺ィ縺励※ null 縺御スソ繧上l繧九€�

10.1.7 this

繧「繧ッ繝�ぅ繝悶↑螳溯。後さ繝ウ繝�く繧ケ繝医◎繧後◇繧後↓邨舌�莉倥¢繧峨l繧� this 蛟、縺後≠繧九€�this 蛟、縺ッ蜻シ蜃コ蛛エ縺ィ螳溯。後&繧後k繧ウ繝シ繝牙梛縺ォ萓晏ュ倥@縲∝宛蠕。縺悟ョ溯。後さ繝ウ繝�く繧ケ繝医↓蜈・繧九→縺阪↓豎コ螳壹&繧後k縲ょョ溯。後さ繝ウ繝�く繧ケ繝医↓邨舌�莉倥¢繧峨l繧� this 蛟、縺ッ荳榊、峨〒縺ゅk縲�

10.1.8 arguments 繧ェ繝悶ず繧ァ繧ッ繝� (Arguments Object)

髢「謨ー繧ウ繝シ繝峨↓繧医▲縺ヲ蛻カ蠕。縺悟ョ溯。後さ繝ウ繝�く繧ケ繝医↓蜈・繧九→縺阪€� arguments 繧ェ繝悶ず繧ァ繧ッ繝医′菴懈�縺輔l谺。縺ョ繧医≧縺ォ蛻晄悄蛹悶&繧後k:

  • argument 繧ェ繝悶ず繧ァ繧ッ繝医�蜀�Κ [[Prototype]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲√が繝ェ繧ク繝翫Ν縺ョ Object prototype 繧ェ繝悶ず繧ァ繧ッ繝医〒縲� Object.prototype (繧サ繧ッ繧キ繝ァ繝ウ15.2.3.1) 縺ョ蛻晄悄蛟、縺ァ縺ゅk縲�
  • 螻樊€ァ { DontEnum } 縺ョ繝励Ο繝代ユ繧」 callee 繧剃ス懈�縺吶k縲ゅ%縺ョ繝励Ο繝代ユ繧」縺ョ蛻晄悄蛟、縺ッ螳溯。後&繧後※縺�k Function 繧ェ繝悶ず繧ァ繧ッ繝医〒縺ゅk縲ゅ%繧後�蜀榊クー縺吶k蛹ソ蜷阪ヵ繧。繝ウ繧ッ繧キ繝ァ繝ウ繧定ィア縺吶€�
  • 螻樊€ァ { DontEnum } 縺ョ繝励Ο繝代ユ繧」 length 繧剃ス懈�縺吶k縲ゅ%縺ョ繝励Ο繝代ユ繧」縺ョ蛻晄悄蛟、縺ッ蜻シ蜃コ蛛エ縺九i萓帷オヲ縺輔l縺溷ョ滄圀縺ョ繝代Λ繝。繝シ繧ソ縺ョ謨ー縺ァ縺ゅk縲�
  • 0 莉・荳� length 繝励Ο繝代ユ繧」縺ョ蛟、譛ェ貅€縺ョ謨エ謨ー arg 縺昴l縺槭l縺ォ縺、縺�※縲∝ア樊€ァ { DontEnum } 縺ョ繝励Ο繝代ユ繧」 ToString(arg) 縺御ス懈�縺輔l繧九€ゅ%縺ョ繝励Ο繝代ユ繧」縺ョ蛻晄悄蛟、縺ッ蟇セ蠢懊☆繧九ヱ繝ゥ繝。繝シ繧ソ縺ョ蜻シ蜃コ蛛エ縺ォ萓帷オヲ縺輔l繧句ョ滄圀縺ョ蛟、縺ァ縺ゅk縲よ怙蛻昴�螳滄圀縺ョ繝代Λ繝。繝シ繧ソ蛟、縺� arg = 0縲�2 逡ェ逶ョ縺ッ arg = 1, 莉・荳句酔讒倥〒縺ゅk縲Brg 縺� Function 繧ェ繝悶ず繧ァ繧ッ繝医�莉ョ蠑墓焚縺ョ謨ー繧医j蟆上&縺��エ蜷医€√%縺ョ繝励Ο繝代ユ繧」縺ッ Activation 繧ェ繝悶ず繧ァ繧ッ繝医�蟇セ蠢懊☆繧九�繝ュ繝代ユ繧」縺ィ縺昴�蛟、繧貞�譛峨☆繧九€ゅ%縺ョ縺薙→縺ッ縲√%縺ョ繝励Ο繝代ユ繧」縺ョ螟画峩縺� Activation 繧ェ繝悶ず繧ァ繧ッ繝医�蟇セ蠢懊☆繧九�繝ュ繝代ユ繧」繧貞、画峩縺吶k縺薙→縲√◎縺励※縺昴�騾�r諢丞袖縺吶k縲�

10.2 螳溯。後さ繝ウ繝�く繧ケ繝医�髢句ァ� (Entering An Execution Context)

蜷�未謨ー縺ィ繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ョ蜻シ蜃コ縺ッ縲∵眠縺励>螳溯。後さ繝ウ繝�く繧ケ繝医r髢句ァ九☆繧九€る未謨ー縺後◎繧瑚�霄ォ縺ョ蜀榊クー逧�他蜃コ縺ァ縺ゅ▲縺ヲ繧ゅ€∝推繝ェ繧ソ繝シ繝ウ縺ッ螳溯。後さ繝ウ繝�く繧ケ繝医r邨ゆコ�☆繧九€よ兜縺偵i繧後◆萓句、悶′蜿励¢蜿悶i繧後↑縺��エ蜷医�縲∽ク€縺、莉・荳翫�螳溯。後さ繝ウ繝�く繧ケ繝医r邨ゆコ�@縺ヲ繧医>縲�

蛻カ蠕。縺悟ョ溯。後さ繝ウ繝�く繧ケ繝医r髢句ァ九☆繧九→縺阪€√せ繧ウ繝シ繝鈴€」骼悶′逕滓�繝サ蛻晄悄蛹悶&繧後€∝、画焚縺ョ螳滉ス灘喧縺瑚。後o繧後€》his 蛟、縺梧アコ螳壹&繧後k縲�

繧ケ繧ウ繝シ繝鈴€」骼悶�螳滉ス灘喧縲∝、画焚縺ョ螳滉ス灘喧縲》his 蛟、縺ョ豎コ螳壹�縲�幕蟋九☆繧九さ繝シ繝牙梛縺ォ萓晏ュ倥☆繧九€�

10.2.1 繧ー繝ュ繝シ繝舌Ν繧ウ繝シ繝� (Global Code)

  • 繧ケ繧ウ繝シ繝鈴€」骼悶′菴懈�縺輔l縲√げ繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医�縺ソ縺ョ讒区�縺ァ蛻晄悄蛹悶&繧後k縲�
  • 螟画焚縺ョ螳滉ス灘喧縺瑚。後o繧後€∝、画焚繧ェ繝悶ず繧ァ繧ッ繝医↓繧ー繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医€√�繝ュ繝代ユ繧」螻樊€ァ { DontDelete } 縺檎畑縺�i繧後k縲�
  • this 蛟、縺ッ繧ー繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医〒縺ゅk縲�

10.2.2 Eval 繧ウ繝シ繝� (Eval Code)

蛻カ蠕。縺� eval 繧ウ繝シ繝峨�螳溯。後さ繝ウ繝�く繧ケ繝医r髢句ァ九☆繧九→縺阪€∝燕縺ョ繧「繧ッ繝�ぅ繝悶↑螳溯。後さ繝ウ繝�く繧ケ繝医�縲� 蜻シ蜃コ繧ウ繝ウ繝�く繧ケ繝� 縺ィ縺励※蜿ら�縺輔l縲√せ繧ウ繝シ繝鈴€」骼悶€∝、画焚繧ェ繝悶ず繧ァ繧ッ繝医€� this 蛟、縺ョ豎コ螳壹↓菴ソ逕ィ縺輔l繧九€ょ他蜃コ繧ウ繝ウ繝�く繧ケ繝医′縺ェ縺代l縺ー縲√せ繧ウ繝シ繝鈴€」骼悶€∝、画焚縺ョ螳滉ス灘喧縲》his 蛟、縺ョ豎コ螳壹�蛻晄悄蛹悶�縲√げ繝ュ繝シ繝舌Ν繧ウ繝シ繝峨→縺励※陦後o繧後k縲�

  • 繧ケ繧ウ繝シ繝鈴€」骼悶′蛻晄悄蛹悶&繧後€∝他蜃コ繧ウ繝ウ繝�く繧ケ繝医�繧ケ繧ウ繝シ繝鈴€」骼悶→蜷後§繧ェ繝悶ず繧ァ繧ッ繝医€∝酔縺倬��コ上↓縺ェ繧九h縺�↓讒区�縺輔l繧九€ゅ%繧後� with 螳」險€縺翫h縺ウ catch 繧ッ繝ュ繝シ繧コ縺ォ繧医▲縺ヲ蜻シ蜃コ繧ウ繝ウ繝�く繧ケ繝医�繧ケ繧ウ繝シ繝鈴€」骼悶↓霑ス蜉�縺輔l繧九が繝悶ず繧ァ繧ッ繝医r蜷ォ繧€縲�
  • 螟画焚縺ョ螳滉ス灘喧縺瑚。後o繧後€∝他蜃コ繧ウ繝ウ繝�く繧ケ繝医�螟画焚繧ェ繝悶ず繧ァ繧ッ繝医€√�繝ュ繝代ユ繧」螻樊€ァ { } 縺檎畑繧峨l繧九€�
  • this 蛟、縺ッ蜻シ蜃コ繧ウ繝ウ繝�く繧ケ繝医� this 蛟、縺ィ蜷後§縺ァ縺ゅk縲�

10.2.3 髢「謨ー繧ウ繝シ繝� (Function Code)

  • 繧ケ繧ウ繝シ繝鈴€」骼悶′蛻晄悄蛹悶&繧後€� Activation 繧ェ繝悶ず繧ァ繧ッ繝医↓ Function 繧ェ繝悶ず繧ァ繧ッ繝医� [[Scope]] 繝励Ο繝代ユ繧」縺ォ闢�ゥ阪&繧後◆繧ケ繧ウ繝シ繝鈴€」骼門�縺ョ繧ェ繝悶ず繧ァ繧ッ繝医′邯壹¥繧医≧縺ォ讒区�縺輔l繧九€�
  • 螟画焚縺ョ螳滉ス灘喧縺瑚。後o繧後€∝、画焚繧ェ繝悶ず繧ァ繧ッ繝医↓ Activation 繧ェ繝悶ず繧ァ繧ッ繝医€√�繝ュ繝代ユ繧」螻樊€ァ { DontDelete } 縺檎畑縺�i繧後k縲�
  • this 蛟、縺ッ蜻シ蜃コ蛛エ縺梧署萓帙☆繧九€ょ他蜃コ蛛エ縺梧署萓帙☆繧� this 蛟、縺後が繝悶ず繧ァ繧ッ繝医〒縺ェ縺��エ蜷�(null 縺ァ縺ゅk蝣エ蜷医r蜷ォ繧€)縲� this 蛟、縺ッ繧ー繝ュ繝シ繝舌Ν繧ェ繝悶ず繧ァ繧ッ繝医→縺吶k縲�

Page Contents

Issued: / Revised: / All rights reserved. © 2002-2016 TAKI