脚本宝典收集整理的这篇文章主要介绍了

JS核心知识点梳理——上下文、作用域、闭包、this(下)

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。
<p><code></p> <p><span class="img-wrap"><img data-src="/img/bVbo4hv?w=1800&amp;h=1000" src="/img/bVbo4hv?w=1800&amp;h=1000" alt="clipboard.png" title="clipboard.png" style="cursor: pointer; display: inline;"></span></p> <h3 id="articleHeader0">引言</h3> <p>前面两篇文章介绍了上下文、作用域、闭包、<a href="http://www.js-code.com/tag/this" title="this" target="_blank">this</a>。这里我精心挑选了一些特别经典的面试题(不定期更新,跪求收藏)。相信通过这些题目能让你完全通关JS三座大三中的之一。</p> <h3 id="articleHeader1">闭包组:</h3> <p><code>这类题目还是挺简单的,我总结了几个要注意的地方</code><br /><code>1.有没有闭包</code><br /><code>2.如果有闭包,看创建了几个闭包。换句话说,是在一个闭包内直接操作还是操作完一个闭包,再创建一个新的闭包继续操作</code><br /><code>3.注意数据的归属,即数据存放在哪个上下文环境</code></p> <h4>1、</h4> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text="var n=0; function a(){ var n=10; function b(){ n++; console.log(n); } b(); return b; } var c=a(); c(); console.log(n); //11 12 0" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs javascript"><code><span class="hljs-keyword"><a href="http://www.js-code.com/tag/var" title="浏览关于“var”的文章" target="_blank" class="tag_link">var</a></span> n=<span class="hljs-number">0</span>; <span class="hljs-function"><span class="hljs-keyword"><a href="http://www.js-code.com/tag/function" title="浏览关于“function”的文章" target="_blank" class="tag_link">function</a></span> <span class="hljs-title">a</span>(<span class="hljs-params"></span>)</span>{ <span class="hljs-keyword">var</span> n=<span class="hljs-number">10</span>; <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">b</span>(<span class="hljs-params"></span>)</span>{ n++; <span class="hljs-built_in">console</span>.log(n); } b(); <span class="hljs-keyword"><a href="http://www.js-code.com/tag/return" title="浏览关于“return”的文章" target="_blank" class="tag_link">return</a></span> b; } <span class="hljs-keyword">var</span> c=a(); c(); <span class="hljs-built_in">console</span>.log(n); <span class="hljs-comment">//11 12 0</span></code></pre> <h4>2、</h4> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text="var a=9; function fn(){ a=0; //如果这里是var a = 0 ,答案是多少 return function(b){ return b+a++; } } var f=fn(); console.log(f(5)); console.log(fn()(5)); console.log(f(5)); console.log(a); // 5 5 6 2 // 如果是var a = 5 5 6 9" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs javascript"><code><span class="hljs-keyword">var</span> a=<span class="hljs-number">9</span>; <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">fn</span>(<span class="hljs-params"></span>)</span>{ a=<span class="hljs-number">0</span>; <span class="hljs-comment">//如果这里是var a = 0 ,答案是多少</span> <span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">b</span>)</span>{ <span class="hljs-keyword">return</span> b+a++; } } <span class="hljs-keyword">var</span> f=fn(); <span class="hljs-built_in">console</span>.log(f(<span class="hljs-number">5</span>)); <span class="hljs-built_in">console</span>.log(fn()(<span class="hljs-number">5</span>)); <span class="hljs-built_in">console</span>.log(f(<span class="hljs-number">5</span>)); <span class="hljs-built_in">console</span>.log(a); <span class="hljs-comment">// 5 5 6 2</span> <span class="hljs-comment">// 如果是var a = 5 5 6 9</span></code></pre> <h4>3、</h4> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text="var ary=[1,2,3,4]; function fn(ary){ ary[0]=0; ary=[0]; ary[0]=100; return ary; } var res=fn(ary); console.log(ary); console.log(res); // [0,2,3,4] [100]" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs javascript"><code><span class="hljs-keyword">var</span> ary=[<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>,<span class="hljs-number">4</span>]; <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">fn</span>(<span class="hljs-params">ary</span>)</span>{ ary[<span class="hljs-number">0</span>]=<span class="hljs-number">0</span>; ary=[<span class="hljs-number">0</span>]; ary[<span class="hljs-number">0</span>]=<span class="hljs-number">100</span>; <span class="hljs-keyword">return</span> ary; } <span class="hljs-keyword">var</span> res=fn(ary); <span class="hljs-built_in">console</span>.log(ary); <span class="hljs-built_in">console</span>.log(res); <span class="hljs-comment">// [0,2,3,4] [100]</span></code></pre> <h4>4、</h4> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text=" function fn(i) { return function (n) { console.log(n + (i++)); } } var f = fn(10); f(20); fn(20)(40); fn(30)(50); f(30); //30 60 80 41" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs javascript"><code> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">fn</span>(<span class="hljs-params">i</span>) </span>{ <span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">n</span>) </span>{ <span class="hljs-built_in">console</span>.log(n + (i++)); } } <span class="hljs-keyword">var</span> f = fn(<span class="hljs-number">10</span>); f(<span class="hljs-number">20</span>); fn(<span class="hljs-number">20</span>)(<span class="hljs-number">40</span>); fn(<span class="hljs-number">30</span>)(<span class="hljs-number">50</span>); f(<span class="hljs-number">30</span>); <span class="hljs-comment">//30 60 80 41</span></code></pre> <h4>5、</h4> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text="var i = 10; function fn() { return function (n) { console.log(n + (++i)); } } var f = fn(); f(20); fn()(20); fn()(30); f(30); //31 32 43 44" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs javascript"><code><span class="hljs-keyword">var</span> i = <span class="hljs-number">10</span>; <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">fn</span>(<span class="hljs-params"></span>) </span>{ <span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">n</span>) </span>{ <span class="hljs-built_in">console</span>.log(n + (++i)); } } <span class="hljs-keyword">var</span> f = fn(); f(<span class="hljs-number">20</span>); fn()(<span class="hljs-number">20</span>); fn()(<span class="hljs-number">30</span>); f(<span class="hljs-number">30</span>); <span class="hljs-comment">//31 32 43 44</span></code></pre> <h4>6、以下代码的功能是要实现为5个<a href="http://www.js-code.com/tag/in" title="in" target="_blank">in</a>put按钮循环绑定click点击事件,绑定完成后点击1、2、3、4、5五个按钮分别会<a href="http://www.js-code.com/tag/alert" title="alert" target="_blank">alert</a>输出0、1、2、3、4五个字符。(腾讯)</h4> <p>请问如下代码是否能实现?<br />如果不能实现那么现在的效果是什么样的?<br />应该做怎样的修改才能达到我们想要的效果,并说明原理?</p> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="<a href="http://www.js-code.com/tag/button" title="button" target="_blank">button</a>" <a href="http://www.js-code.com/tag/class" title="class" target="_blank">class</a>="copyCode code-tool" data-toggle="tooltip" data-placement="<a href="http://www.js-code.com/tag/top" title="top" target="_blank">top</a>" data-clipboard-<a href="http://www.js-code.com/tag/text" title="text" target="_blank">text</a>="</p> <div id=&quot;btnBox&quot;> <input type=&quot;button&quot; value=&quot;button_1&quot; /><br /> <input type=&quot;button&quot; value=&quot;button_2&quot; /><br /> <input type=&quot;button&quot; value=&quot;button_3&quot; /><br /> <input type=&quot;button&quot; value=&quot;button_4&quot; /><br /> <input type=&quot;button&quot; value=&quot;button_5&quot; /> </div> <p><script type=&quot;text/javascript&quot;> <a href="http://www.js-code.com/tag/var" title="var" target="_blank">var</a> btnBox=<a href="http://www.js-code.com/tag/do" title="do" target="_blank">do</a>cument.getElementById('btnBox'), <a href="http://www.js-code.com/tag/in" title="in" target="_blank">in</a>puts=btnBox.getElementsByTagName('<a href="http://www.js-code.com/tag/in" title="浏览关于“in”的文章" target="_blank" class="tag_link">in</a>put'); <a href="http://www.js-code.com/tag/var" title="var" target="_blank">var</a> l=inputs.<a href="http://www.js-code.com/tag/length" title="length" target="_blank">length</a>; <a href="http://www.js-code.com/tag/for" title="for" target="_blank">for</a>(var i=0;i<l;i++){ inputs[i].<a href="http://www.js-code.com/tag/onclick" title="onclick" target="_blank">onclick</a>=<a href="http://www.js-code.com/tag/function" title="function" target="_blank">function</a>(){ <a href="http://www.js-code.com/tag/alert" title="alert" target="_blank">alert</a>(i); } } </script>" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs xml"><code> <span class="hljs-tag">&lt;<span class="hljs-name"><a href="http://www.js-code.com/tag/div" title="浏览关于“div”的文章" target="_blank" class="tag_link">div</a></span> <span class="hljs-attr">id</span>=<span class="hljs-string">"btnBox"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"<a href="http://www.js-code.com/tag/button" title="浏览关于“button”的文章" target="_blank" class="tag_link">button</a>"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"button_1"</span> /&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"button"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"button_2"</span> /&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"button"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"button_3"</span> /&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"button"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"button_4"</span> /&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"button"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"button_5"</span> /&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"<a href="http://www.js-code.com/tag/text" title="浏览关于“text”的文章" target="_blank" class="tag_link">text</a>/<a href="http://www.js-code.com/tag/java" title="浏览关于“java”的文章" target="_blank" class="tag_link">java</a>script"</span>&gt;</span><span class="javascript"> <span class="hljs-keyword">var</span> btnBox=<span class="hljs-built_in"><a href="http://www.js-code.com/tag/document" title="浏览关于“document”的文章" target="_blank" class="tag_link">document</a></span>.getElementById(<span class="hljs-string">'btnBox'</span>), inputs=btnBox.getElementsByTagName(<span class="hljs-string">'input'</span>); <span class="hljs-keyword">var</span> l=inputs.<a href="http://www.js-code.com/tag/length" title="浏览关于“length”的文章" target="_blank" class="tag_link">length</a>; <span class="hljs-keyword"><a href="http://www.js-code.com/tag/for" title="浏览关于“for”的文章" target="_blank" class="tag_link">for</a></span>(<span class="hljs-keyword">var</span> i=<span class="hljs-number">0</span>;i&lt;l;i++){ inputs[i].<a href="http://www.js-code.com/tag/onclick" title="浏览关于“onclick”的文章" target="_blank" class="tag_link">onclick</a>=<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{ <a href="http://www.js-code.com/tag/alert" title="浏览关于“alert”的文章" target="_blank" class="tag_link">alert</a>(i); } } </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre> <p>1.不能实现<br />2.因为js没有块作用域,所以公用的外层作用域的i,当点击触发函数的时候 ,应当注意外层的i是5了,所以全部打印5没毛病<br />3.<br />解决思路1:没有块作用域我就用<a href="http://www.js-code.com/tag/es6" title="es6" target="_blank">es6</a>的<a href="http://www.js-code.com/tag/let" title="let" target="_blank">let</a>形成块作用域</p> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="<a href="http://www.js-code.com/tag/button" title="button" target="_blank">button</a>" <a href="http://www.js-code.com/tag/class" title="class" target="_blank">class</a>="copyCode code-tool" data-toggle="tooltip" data-placement="<a href="http://www.js-code.com/tag/top" title="top" target="_blank">top</a>" data-clipboard-<a href="http://www.js-code.com/tag/text" title="text" target="_blank">text</a>=" <a href="http://www.js-code.com/tag/for" title="for" target="_blank">for</a>(<a href="http://www.js-code.com/tag/let" title="let" target="_blank">let</a> i=0;i<l;i++){ inputs[i].onclick=function(){ alert(i); } }" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs javascript"><code> <span class="hljs-keyword">for</span>(<span class="hljs-keyword"><a href="http://www.js-code.com/tag/let" title="浏览关于“let”的文章" target="_blank" class="tag_link">let</a></span> i=<span class="hljs-number">0</span>;i&lt;l;i++){ inputs[i].onclick=<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{ alert(i); } }</code></pre> <p>解决思路2:每次绑定的时候i其实都是正确的,我能不能用另外一个变量将每次的i存起来呢?</p> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="<a href="http://www.js-code.com/tag/top" title="浏览关于“top”的文章" target="_blank" class="tag_link">top</a>" data-clipboard-text="//这样行吗?<br /> for(var i=0;i<l;i++){ inputs[i].onclick=function(){ var num = i alert(num); } } //这样还是不行,因为回调函数定义的时候并不会执行,所以当var num = i 执行的时候i已经等于5了" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs actionscript"><code><span class="hljs-comment">//这样行吗?</span> <span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> i=<span class="hljs-number">0</span>;i&lt;l;i++){ inputs[i].onclick=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{ <span class="hljs-keyword">var</span> num = i alert(num); } } <span class="hljs-comment">//这样还是不行,因为回调函数定义的时候并不会执行,所以当var num = i 执行的时候i已经等于5了</span></code></pre> <p>那么我应该让回调函数定义的时候里面的代码能立即执行,接收到参数0,1,2,3,4</p> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text="for(var i=0;i<l;i++){ inputs[i].onclick=(function(){ var num = i alert(num); })(i) } //这样也有问题i传递进去了,但是里面核心代码定义也执行了,我想让它点击的时候再执行" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs lisp"><code>for(<span class="hljs-name">var</span> i=0<span class="hljs-comment">;i&lt;l;i++){</span> inputs[i].onclick=(<span class="hljs-name">function</span>(){ var num = i alert(<span class="hljs-name">num</span>)<span class="hljs-comment">;</span> })(<span class="hljs-name">i</span>) } //这样也有问题i传递进去了,但是里面核心代码定义也执行了,我想让它点击的时候再执行</code></pre> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text="for(var i=0;i<l;i++){ inputs[i].onclick=(function(){ var num = i return function (e) { //注意这个时候e是啥,是点击的事件 console.log(num) } })(i) } //这样就没毛病了,返回一个方法,不会立即执行,i传进去了,给了num,由于有闭包,又不会被销毁" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs javascript"><code><span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> i=<span class="hljs-number">0</span>;i&lt;l;i++){ inputs[i].onclick=(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{ <span class="hljs-keyword">var</span> num = i <span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">e</span>) </span>{ <span class="hljs-comment">//注意这个时候e是啥,是点击的事件</span> <span class="hljs-built_in">console</span>.log(num) } })(i) } <span class="hljs-comment">//这样就没毛病了,返回一个方法,不会立即执行,i传进去了,给了num,由于有闭包,又不会被销毁</span></code></pre> <p>还能怎么优化?既然i能传进去,我为啥还要而外用个变量保存呢?</p> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text="for(var i=0;i<l;i++){ inputs[i].onclick=(function(x){//x是形参,由于闭包存在,上下文不销毁 return function () { console.log(x) } })(i) }" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs javascript"><code><span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> i=<span class="hljs-number">0</span>;i&lt;l;i++){ inputs[i].onclick=(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">x</span>)</span>{<span class="hljs-comment">//x是形参,由于闭包存在,上下文不销毁</span> <span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{ <span class="hljs-built_in">console</span>.log(x) } })(i) }</code></pre> <h3 id="articleHeader2"><a href="http://www.js-code.com/tag/this" title="this" target="_blank">this</a>组:</h3> <p><code>这类题目严格按上篇文章的分析思路,不复杂,就是麻烦一点。不要在脑子里想,每步的结果用纸和笔演算下</code></p> <h4>1、</h4> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text=" var num = 10; var obj = {num: 20}; obj.fn = (function (num) { this.num = num * 3; num++; return function (n) { this.num += n; num++; console.log(num); } })(obj.num); var fn = obj.fn; fn(5); obj.fn(10); console.log(num, obj.num); //22 23 65 30" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs dart"><code> <span class="hljs-keyword">var</span> <span class="hljs-built_in">num</span> = <span class="hljs-number">10</span>; <span class="hljs-keyword">var</span> obj = {<span class="hljs-built_in">num</span>: <span class="hljs-number">20</span>}; obj.fn = (function (<span class="hljs-built_in">num</span>) { <span class="hljs-keyword"><a href="http://www.js-code.com/tag/this" title="浏览关于“this”的文章" target="_blank" class="tag_link">this</a></span>.<span class="hljs-built_in">num</span> = <span class="hljs-built_in">num</span> * <span class="hljs-number">3</span>; <span class="hljs-built_in">num</span>++; <span class="hljs-keyword">return</span> function (n) { <span class="hljs-keyword">this</span>.<span class="hljs-built_in">num</span> += n; <span class="hljs-built_in">num</span>++; console.log(<span class="hljs-built_in">num</span>); } })(obj.<span class="hljs-built_in">num</span>); <span class="hljs-keyword">var</span> fn = obj.fn; fn(<span class="hljs-number">5</span>); obj.fn(<span class="hljs-number">10</span>); console.log(<span class="hljs-built_in">num</span>, obj.<span class="hljs-built_in">num</span>); <span class="hljs-comment">//22 23 65 30</span></code></pre> <p></code></p>

总结

以上是脚本宝典为你收集整理的

JS核心知识点梳理——上下文、作用域、闭包、this(下)

全部内容,希望文章能够帮你解决

JS核心知识点梳理——上下文、作用域、闭包、this(下)

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过