??xml version="1.0" encoding="utf-8" standalone="yes"?>品久久久久久久久久96高清,av日韩一区,精品91视频http://www.aygfsteel.com/zhangchao/category/29889.htmlDon't Cry!zh-cnFri, 30 May 2008 01:28:21 GMTFri, 30 May 2008 01:28:21 GMT60javascript数组中的spliceҎhttp://www.aygfsteel.com/zhangchao/archive/2008/05/28/203462.htmlzhangchaozhangchaoWed, 28 May 2008 04:58:00 GMThttp://www.aygfsteel.com/zhangchao/archive/2008/05/28/203462.htmlhttp://www.aygfsteel.com/zhangchao/comments/203462.htmlhttp://www.aygfsteel.com/zhangchao/archive/2008/05/28/203462.html#Feedback0http://www.aygfsteel.com/zhangchao/comments/commentRss/203462.htmlhttp://www.aygfsteel.com/zhangchao/services/trackbacks/203462.html
arrayObject.splice(index,howmany,element1,..,elementX)
index:必选项.指定在哪个位|加?删除元素,必须是数?
howmany:必选项.指定有多元素应该被删除,必须是数?可以?0".
element1:可?指定要加入到数组中的新元?
elementX:可?可以加入多个元素.
说明:如果howmany??0",则该数组中将没有元素被删?那么element1至elementX个参数将从index指定的位|插入到该数l中,数组中原位置的元素将后移.如果howmany不ؓ0,则从index指定位置开始删除howmany个元?包括index位置的元?,然后再从index开始插入element1至elementX个参?数组中原位置的元素将后移.
?:
<script type="text/javascript">
var arr 
= new Array(5);
arr[
0= "Jani";
arr[
1= "Hege";
arr[
2= "Stale";
arr[
3= "Kai Jim"
arr[
4= "Borge";
document.write(arr 
+ "<br />");
arr.splice(
2,0,"Lene");
document.write(arr 
+ "<br />");
</script>
输出l果?
Jani,Hege,Stale,Kai Jim,Borge
Jani,Hege,Lene,Stale,Kai Jim,Borge
?:
<script type="text/javascript">
var arr 
= new Array(5);
arr[
0= "Jani";
arr[
1= "Hege";
arr[
2= "Stale";
arr[
3= "Kai Jim";
arr[
4= "Borge";
document.write(arr 
+ "<br />");
arr.splice(
2,1,"Tove");
document.write(arr);
</script>
输出l果?
Jani,Hege,Stale,Kai Jim,Borge
Jani,Hege,Tove,Kai Jim,Borge
?:
<script type="text/javascript">
var arr 
= new Array(5);
arr[
0= "Jani";
arr[
1= "Hege";
arr[
2= "Stale";
arr[
3= "Kai Jim";
arr[
4= "Borge";
document.write(arr 
+ "<br />");
arr.splice(
2,3,"Tove");
document.write(arr);
</script>
输出l果?
Jani,Hege,Stale,Kai Jim,Borge
Jani,Hege,Tove


zhangchao 2008-05-28 12:58 发表评论
]]>
我所理解的原型对?/title><link>http://www.aygfsteel.com/zhangchao/archive/2008/05/09/199550.html</link><dc:creator>zhangchao</dc:creator><author>zhangchao</author><pubDate>Fri, 09 May 2008 08:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhangchao/archive/2008/05/09/199550.html</guid><wfw:comment>http://www.aygfsteel.com/zhangchao/comments/199550.html</wfw:comment><comments>http://www.aygfsteel.com/zhangchao/archive/2008/05/09/199550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zhangchao/comments/commentRss/199550.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zhangchao/services/trackbacks/199550.html</trackback:ping><description><![CDATA[        众所周知,javascript中的l承是通过原型对象(prototype)来实现的.原型对象是由函数的构造函数创?它所拥有的属性能被所有对象共?初始时原型对象指向一个Object对象,q且定义了一个constructor属?该属性指向定义该原型对象的构造函数本w?上述q程可以理解Z下代?<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">function</span><span style="color: #000000"> BaseClass() {<br />     document.write('This is BaseClass.');<br /> }<br /> BaseClass.prototype </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Object();<br /> BaseClass.prototype.constructor </span><span style="color: #000000">=</span><span style="color: #000000"> BaseClass;</span></div> 因ؓ原型对象的所有属性能被构造函数创建对象共?所以创建的对象可以讉Kq里的constructor属?<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">var</span><span style="color: #000000"> c </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> BaseClass();<br /> document.write(c.constructor </span><span style="color: #000000">==</span><span style="color: #000000"> BaseClass); </span><span style="color: #008000">//</span><span style="color: #008000">true</span><span style="color: #008000"><br /> </span><span style="color: #000000">c.constructor(); </span><span style="color: #008000">//</span><span style="color: #008000">调用BaseClass函数,输出This is BaseClass.</span></div> ׃对象本n也可以自定义属?所以在d对象属性时js先检查该对象是否定义了该属?如果已经定义了则使用该属?如果没有定义则再从其原型对象中读取该属?所以如果对象自定义的属性和其原型中的属性存在重名则自定义属?隐藏"了其原型对象中的同名属??<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">c.constructor </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">function</span><span style="color: #000000">() {<br />     document.write('This is c');<br /> }<br /> c.constructor(); </span><span style="color: #008000">//</span><span style="color: #008000">This is c</span></div> 加入上述代码之后再次调用c.constructor(),则会打印?This is c".q是因ؓc已自定义constructor属?隐藏"了其原型对象中的constructor属?当然js保证了读写的不对U?也就是说d一个对象的属性时有可能要从其原型对象中去d,但写一个对象的属性时却从不涉及其原型对象,无论在一个对象加入或修改多少属性这都不影响其原型对象中属性的本来面目.比如q里c自定义了constructor属?但这一行ؓq不影响其原型对象中constructor指向其构造函数这一事实,如果再创Z个对象且不自定义constructor属?再调用constructor则依然调用对象的构造函??<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">var</span><span style="color: #000000"> b </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> BaseClass();<br /> b.constructor(); </span><span style="color: #008000">//</span><span style="color: #008000">调用BaseClass函数,输出This is BaseClass.</span></div> <p>很容易理解jsZ么这样做,因ؓ一个对象的行ؓ不能影响到其他对?否则会造成混ؕ.<br />         理解上述规则之后让我们看看js中是如何通过原型对象实现l承?当我们创Z个对象时,可以把该对象看成是由2部分l成?一部分存储了该对象自己定义的属?UCؓA部分),而另一个部分则存储了其构造函数所定义的原型对象引?UCؓB部分),例如q里的BaseClass.prototype.当读取对象的属性时可以分ؓ以下2?<br /> 1.js先检查该对象引用所指向的内存区域的A部分是否存在该属?如果存在则读?<br /> 2.如果没有则再从B部分存储的引?BaseClass.prototype)所指向的内存区域中d该属?</p> <p>从步?开始这是个不断往上寻扄q程,因ؓBaseClass.prototype所指向的内存区域也会分为A和B两个部分,如果再A部分也不存在该属?则又会从其B部分所指向的内存区域去L该属?而该内存区域也有A和B两个部分,如果A部分仍然不存?则还要从B部分所指向的内存区域去L该属?直到辑ֈ最层的Objectc?所以在无Ş当中Ş成了一条链,也就是我们常说的原型?如果理解了这个过E我想也p了解原型对象?下面单分析下b.constructor();的调用过E便于加q?<br /> 1.js会在b所指向的内存区域A部分dconstructor属?<br /> 2.当发现没有该属性后再从其类的构造函数原型对象引用所指向的内存区域读取该属?因ؓ原型对象引用初始时指向一Object对象内存区域(BaseClass.prototype = new Object();)<br /> 3.再从此Object对象的A部分Lconstructor属?<br /> 4.没有扑ֈ该属性则从其cȝ原型对象即Object.prototype中去Lconstructor.<br /> 5.如果扑ֈ该属性则调用.<br /> 6.否则,到达铄端,q回.<br /> 到此能很清楚的知道js中是如何实现l承?如果我们自定义的cM想承自Object,则可以修改其prototype的指?可以让其指向L一个类,q样也就实现了承自定义c?但js中所有的c都l承自Objectc?所以原型链的关pM然存?</p> <img src ="http://www.aygfsteel.com/zhangchao/aggbug/199550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhangchao/" target="_blank">zhangchao</a> 2008-05-09 16:43 <a href="http://www.aygfsteel.com/zhangchao/archive/2008/05/09/199550.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript中的逻辑操作W?/title><link>http://www.aygfsteel.com/zhangchao/archive/2008/03/13/185941.html</link><dc:creator>zhangchao</dc:creator><author>zhangchao</author><pubDate>Thu, 13 Mar 2008 02:30:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhangchao/archive/2008/03/13/185941.html</guid><wfw:comment>http://www.aygfsteel.com/zhangchao/comments/185941.html</wfw:comment><comments>http://www.aygfsteel.com/zhangchao/archive/2008/03/13/185941.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zhangchao/comments/commentRss/185941.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zhangchao/services/trackbacks/185941.html</trackback:ping><description><![CDATA[    昨天在看Ext的源码时发现了以下代码attributes = attributes || {};一直以为js中的逻辑操作W返回的l果是boolean值即true或false,查了下文档才发现其实不然.<br />     js的逻辑操作W有3U?即逻辑?&&),逻辑?||)和逻辑?!).逻辑非始l返回一个boolean?即true或false.而逻辑与和逻辑或则不一定返回boolean?查了下文档才明白逻辑与和逻辑或执行的规则:<br /> 逻辑?&&):<br /> 1.先执行左边的表达?得到该表辑ּ的?<br /> 2.试该D{换成boolean.<br /> 3.如果2的结果是false,则返?中得到的?如果该g是false,而是一个其他的?比如是个对象,则将q回q个对象而不是false),执行完毕.<br /> 4.如果2的结果是true,执行双表达式ƈ得到?<br /> 5.q回4中得到的?<br /> <br /> 逻辑?||):<br /> 1.先执行左边的表达?得到该表辑ּ的?<br /> 2.试该D{换成boolean.<br /> 3.如果2的结果是true,则返?中得到的?执行完毕.<br /> 4.如果2的结果是false,执行双表达式ƈ得到?<br /> 5.q回4中得到的?<br /> <br /> ȝ:逻辑与如果左Ҏfalse,则整个表辑ּ的值是左边表达式的?如果为true,则整个表辑ּ的值是双表达式的?<br /> 逻辑或如果左Ҏtrue,则整个表辑ּ的值是左边表达式的?如果为false,则整个表辑ּ的值是双表达式的? <img src ="http://www.aygfsteel.com/zhangchao/aggbug/185941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhangchao/" target="_blank">zhangchao</a> 2008-03-13 10:30 <a href="http://www.aygfsteel.com/zhangchao/archive/2008/03/13/185941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>悟透JavaScript(?http://www.aygfsteel.com/zhangchao/archive/2008/03/05/183888.htmlzhangchaozhangchaoWed, 05 Mar 2008 03:07:00 GMThttp://www.aygfsteel.com/zhangchao/archive/2008/03/05/183888.htmlhttp://www.aygfsteel.com/zhangchao/comments/183888.htmlhttp://www.aygfsteel.com/zhangchao/archive/2008/03/05/183888.html#Feedback0http://www.aygfsteel.com/zhangchao/comments/commentRss/183888.htmlhttp://www.aygfsteel.com/zhangchao/services/trackbacks/183888.html阅读全文

zhangchao 2008-03-05 11:07 发表评论
]]>
վ֩ģ壺 | | | | | | | | | | ۩| | | | | Ժ| ʳ| | Ѱ| | ȫ| | ľ| ҵ| | ɽ| ɽ| Զ| | | | Դ| ³| ŷ| °| | | ɳ| | ຣʡ| ͬ|