
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
	<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head><card id="MainCard" title="&#x6B22;&#x8FCE;&#x5149;&#x4E34;"><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a><br/>&nbsp;</p><p><b>&#x6807;&#x9898;&#x3A;</b> &#x45;&#x53;&#x36;&#x5B66;&#x4E60;&#x7B14;&#x8BB0;&#xFF1A;&#x49;&#x74;&#x65;&#x72;&#x61;&#x74;&#x6F;&#x72;&#x63A5;&#x53E3;&#x548C;&#x47;&#x65;&#x6E;&#x65;&#x72;&#x61;&#x74;&#x6F;&#x72;&#x51FD;&#x6570;</p><p><b>&#x4F5C;&#x8005;&#x3A;</b> &#x64;&#x6E;&#x61;&#x77;&#x6F;</p><p><b>&#x65E5;&#x671F;&#x3A;</b> &#x32;&#x30;&#x32;&#x32;&#x2D;&#x30;&#x34;&#x2D;&#x31;&#x32;&#x20;&#x30;&#x39;&#x3A;&#x32;&#x33;&#x20;&#x50;&#x4D;</p><p><b>&#x5206;&#x7C7B;&#x3A;</b> <a href="wap.asp?do=showLog&amp;cateID=4">&#x811A;&#x672C;&#x8BED;&#x8A00;</a></p><p><b>&#x5185;&#x5BB9;&#x3A;</b> &#x4E00;&#x3001;Iterator&#x63A5;&#x53E3;<br/>Iterator&#x63A5;&#x53E3;&#x4E3A;&#x5404;&#x79CD;&#x4E0D;&#x540C;&#x7684;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x63D0;&#x4F9B;&#x7EDF;&#x4E00;&#x7684;&#x8BBF;&#x95EE;&#x673A;&#x5236;&#xFF0C;&#x4EFB;&#x4F55;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x53EA;&#x8981;&#x90E8;&#x7F72;&#x4E86;Iterator&#xFF0C;&#x5C31;&#x53EF;&#x4EE5;&#x5B8C;&#x6210;&#x904D;&#x5386;&#x64CD;&#x4F5C;&#xFF0C;&#x4E3E;&#x4E2A;&#x4F8B;&#x5B50;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;function customIterator(arr) {<br/>&#160;&#160;&#160;&#160;let nextIndex = 0;<br/>&#160;&#160;&#160;&#160;return {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;next: function() {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(nextIndex &lt; arr.length){<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return {value: arr[nextIndex++], done: false};<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}else{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return {value: undefined, done: true};<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;};<br/>}<br/>let it = customIterator([&#39;a&#39;, &#39;b&#39;]);<br/>it.next(); //{value: &#39;a&#39;, done: false }<br/>it.next(); //{value: &#39;b&#39;, done: false }<br/>it.next(); //{value: undefined, done: true }<br/>customIterator&#x662F;&#x5B9E;&#x73B0;Iterator&#x63A5;&#x53E3;&#x7684;&#x904D;&#x5386;&#x5668;&#x751F;&#x6210;&#x51FD;&#x6570;&#xFF0C;&#x8C03;&#x7528;&#x8BE5;&#x51FD;&#x6570;&#x4F1A;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;&#x904D;&#x5386;&#x5668;&#xFF0C;&#x5176;&#x5185;&#x90E8;&#x6709;&#x4E00;&#x4E2A;&#x6307;&#x9488;&#x548C;&#x4E00;&#x4E2A;next&#x65B9;&#x6CD5;&#xFF0C;&#x6BCF;&#x4E00;&#x6B21;&#x8C03;&#x7528;next&#x65B9;&#x6CD5;&#x90FD;&#x4F1A;&#x79FB;&#x52A8;&#x6307;&#x9488;&#x548C;&#x8FD4;&#x56DE;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x5F53;&#x524D;&#x6210;&#x5458;&#x7684;&#x4FE1;&#x606F;&#xFF0C;&#x8FD4;&#x56DE;&#x503C;&#x662F;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#xFF0C;&#x683C;&#x5F0F;&#x4E3A;&#xFF1A;{value, done}&#xFF0C;value&#x662F;&#x5F53;&#x524D;&#x6210;&#x5458;&#x7684;&#x503C;&#xFF0C;done&#x662F;&#x4E00;&#x4E2A;&#x5E03;&#x5C14;&#x503C;&#xFF0C;&#x8868;&#x793A;&#x904D;&#x5386;&#x662F;&#x5426;&#x7ED3;&#x675F;&#x3002;<br/>&#x5BF9;&#x4E8E;Array&#x3001;Map&#x3001;Set&#x3001;String&#x3001;TypedArray&#x3001;&#x51FD;&#x6570;&#x7684;arguments&#x5BF9;&#x8C61;&#x3001;NodeList&#x5BF9;&#x8C61;&#x8FD9;&#x4E9B;&#x6570;&#x636E;&#x7ED3;&#x6784;&#xFF0C;Javascri&#112;t&#x539F;&#x751F;&#x7ED9;&#x5B83;&#x4EEC;&#x90E8;&#x7F72;&#x4E86;Iterator&#xFF0C;&#x8C03;&#x7528;&#x8FD9;&#x4E9B;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x7684;Symbol.iterator&#x5C5E;&#x6027;&#x5373;&#x53EF;&#x5F97;&#x5230;&#x904D;&#x5386;&#x5668;&#x751F;&#x6210;&#x51FD;&#x6570;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;let arr = [&#39;a&#39;, &#39;b&#39;];<br/>let it = arr[Symbol.iterator]();<br/>it.next(); //{value: &#39;a&#39;, done: false }<br/>it.next(); //{value: &#39;b&#39;, done: false }<br/>it.next(); //{value: undefined, done: true }<br/>&#x4E8C;&#x3001;Generator&#x51FD;&#x6570;<br/>Generator&#x51FD;&#x6570;&#x4E5F;&#x662F;&#x4E00;&#x4E2A;&#x904D;&#x5386;&#x5668;&#x751F;&#x6210;&#x51FD;&#x6570;&#xFF0C;&#x5B83;&#x7684;&#x5B9E;&#x73B0;&#x65B9;&#x5F0F;&#x548C;Iterator&#x63A5;&#x53E3;&#x5B8C;&#x5168;&#x4E0D;&#x540C;&#x3002;Generator&#x51FD;&#x6570;&#x6709;&#x4E24;&#x4E2A;&#x7279;&#x5F81;&#xFF0C;&#x4E00;&#x662F;function&#x5173;&#x952E;&#x5B57;&#x4E0E;&#x51FD;&#x6570;&#x540D;&#x4E4B;&#x95F4;&#x6709;&#x4E00;&#x4E2A;&#x661F;&#x53F7;&#xFF0C;&#x4E8C;&#x662F;&#x51FD;&#x6570;&#x4F53;&#x5185;&#x90E8;&#x4F7F;&#x7528;yield&#x8868;&#x8FBE;&#x5F0F;&#xFF0C;&#x5B9A;&#x4E49;&#x4E0D;&#x540C;&#x7684;&#x5185;&#x90E8;&#x72B6;&#x6001;&#xFF0C;&#x6BCF;&#x4E00;&#x6B21;&#x8C03;&#x7528;next&#x65B9;&#x6CD5;&#x8FD0;&#x884C;&#x5230;&#x4E0B;&#x4E00;&#x4E2A;yield&#x5E76;&#x6682;&#x505C;&#xFF0C;&#x8FD4;&#x56DE;&#x503C;&#x548C;Iterator&#x4E00;&#x6837;&#xFF0C;value&#x4E3A;yield&#x8868;&#x8FBE;&#x5F0F;&#x7684;&#x503C;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;function* customGenerator() {<br/>&#160;&#160;&#160;&#160;yield &#39;a&#39;;<br/>&#160;&#160;&#160;&#160;yield &#39;b&#39;;<br/>}<br/>let gt = customGenerator();<br/>gt.next(); //{value: &#39;a&#39;, done: false }<br/>gt.next(); //{value: &#39;b&#39;, done: false }<br/>gt.next(); //{value: undefined, done: true }<br/>&#x6362;&#x8A00;&#x4E4B;&#xFF0C;Generator&#x51FD;&#x6570;&#x662F;&#x5206;&#x6BB5;&#x6267;&#x884C;&#x7684;&#xFF0C;yield&#x8868;&#x8FBE;&#x5F0F;&#x662F;&#x6682;&#x505C;&#x6267;&#x884C;&#x7684;&#x6807;&#x8BB0;&#xFF0C;&#x800C;next&#x65B9;&#x6CD5;&#x53EF;&#x4EE5;&#x6062;&#x590D;&#x6267;&#x884C;&#x3002;Generator&#x51FD;&#x6570;&#x8C03;&#x7528;&#x65F6;&#x4E0D;&#x4F1A;&#x7ACB;&#x5373;&#x6267;&#x884C;&#xFF0C;&#x76F4;&#x5230;&#x8C03;&#x7528;next&#x65B9;&#x6CD5;&#x624D;&#x5F00;&#x59CB;&#x6267;&#x884C;&#x3002;&#x5229;&#x7528;Generator&#x51FD;&#x6570;&#x8FD9;&#x4E2A;&#x7279;&#x6027;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5199;&#x51FA;&#x4EFB;&#x610F;&#x5BF9;&#x8C61;&#x904D;&#x5386;&#x5668;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;function* customGenerator(obj) {<br/>&#160;&#160;&#160;&#160;let propKeys = Reflect.ownKeys(obj);<br/>&#160;&#160;&#160;&#160;for (let propKey of propKeys) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;yield [propKey, obj[propKey]];<br/>&#160;&#160;&#160;&#160;}<br/>}<br/>let gt = customGenerator({name: &#39;Jack&#39;, age: 30});<br/>gt.next(); //{value: [&#39;name&#39;, &#39;Jack&#39;], done: false }<br/>gt.next(); //{value: [&#39;age&#39;, 30], done: false }<br/>gt.next(); //{value: undefined, done: true }<br/>Generator&#x51FD;&#x6570;&#x4E5F;&#x662F;&#x4E00;&#x4E2A;&#x904D;&#x5386;&#x5668;&#x751F;&#x6210;&#x51FD;&#x6570;&#xFF0C;&#x6240;&#x4EE5;&#x5C06;&#x5B83;&#x52A0;&#x5230;&#x5BF9;&#x8C61;&#x7684;Symbol.iterator&#x5C5E;&#x6027;&#x4E0A;&#x9762;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x7684;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;let person = {<br/>&#160;&#160;&#160;&#160;name: &#39;Jack&#39;, <br/>&#160;&#160;&#160;&#160;age: 30,<br/>&#160;&#160;&#160;&#160;[Symbol.iterator]: function* () {<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;let propKeys = Object.keys(this);<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;for (let propKey of propKeys) {<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield [propKey, this[propKey]];<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&#160;&#160;&#160;&#160;}<br/>};<br/>let gt = person[Symbol.iterator]();<br/>gt.next(); //{value: [&#39;name&#39;, &#39;Jack&#39;], done: false }<br/>gt.next(); //{value: [&#39;age&#39;, 30], done: false }<br/>gt.next(); //{value: undefined, done: true }<br/>&#x4E09;&#x3001;for...of&#x5FAA;&#x73AF;<br/>&#x4E00;&#x4E2A;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x53EA;&#x8981;&#x90E8;&#x7F72;&#x4E86;Symbol.iterator&#x5C5E;&#x6027;&#xFF0C;&#x5C31;&#x88AB;&#x89C6;&#x4E3A;&#x5177;&#x6709;iterator&#x63A5;&#x53E3;&#xFF0C;&#x5C31;&#x53EF;&#x4EE5;&#x7528;for...of&#x5FAA;&#x73AF;&#x904D;&#x5386;&#x5B83;&#x7684;&#x6210;&#x5458;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;for(let item of arr){<br/>&#160;&#160;&#160;&#160;console.log(item);<br/>}<br/>//a<br/>//b<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;for(let item of person){<br/>&#160;&#160;&#160;&#160;console.log(item);<br/>}<br/>//[&#39;name&#39;, &#39;Jack&#39;]<br/>//[&#39;age&#39;, 30]</p><p> + <a href="#CommentCard">&#x67E5;&#x770B;&#x5F53;&#x524D;&#x65E5;&#x5FD7;&#x8BC4;&#x8BBA;</a> (0)</p><p>&nbsp;<br/><br/><a href="wap.asp?do=Login">&#x767B;&#x5F55;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.063&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="postCommentCard"><p><b>&#x6807;&#x9898;&#x3A;</b> <a href="#MainCard">&#x45;&#x53;&#x36;&#x5B66;&#x4E60;&#x7B14;&#x8BB0;&#xFF1A;&#x49;&#x74;&#x65;&#x72;&#x61;&#x74;&#x6F;&#x72;&#x63A5;&#x53E3;&#x548C;&#x47;&#x65;&#x6E;&#x65;&#x72;&#x61;&#x74;&#x6F;&#x72;&#x51FD;&#x6570;</a></p><p><br/>你没有权限发表评论</p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.063&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="CommentCard"><p>&#x6682;&#x65E0;&#x8BC4;&#x8BBA;</p><p><a href="#MainCard">&#x8FD4;&#x56DE;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.063&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card>
</wml>
