??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精选视频,亚洲成人久久久久,日本一区二区三区久久久久久久久不http://www.aygfsteel.com/kyleYang/category/42720.html孩儿立志Z养I学不成名誓不q? 风华正茂乑֝圎ͼ人生无处不青山? 光阴如同水去,珍惜时光最宝贵? 鹏程万里靠自己,飞黄腾达青少q? zh-cnWed, 11 Aug 2010 07:56:13 GMTWed, 11 Aug 2010 07:56:13 GMT60JavaScript跨浏览器的添加删除事件绑定函?/title><link>http://www.aygfsteel.com/kyleYang/archive/2010/08/11/328466.html</link><dc:creator>飞熊</dc:creator><author>飞熊</author><pubDate>Wed, 11 Aug 2010 00:30:00 GMT</pubDate><guid>http://www.aygfsteel.com/kyleYang/archive/2010/08/11/328466.html</guid><wfw:comment>http://www.aygfsteel.com/kyleYang/comments/328466.html</wfw:comment><comments>http://www.aygfsteel.com/kyleYang/archive/2010/08/11/328466.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kyleYang/comments/commentRss/328466.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kyleYang/services/trackbacks/328466.html</trackback:ping><description><![CDATA[ <h3>javascript跨浏览器d事gl定 bind()</h3> <p sizset="17" sizcache="4">IE ?strong>事gl定</strong>函数?strong> attachEvent</strong>Q?<a title="Firefox" ><font color="#2f63b3">Firefox</font></a>, Safari ?<strong>addEventListener</strong>QOpera 则两U都支持。用jQuery可以用简单的bind()Q或?().click()之类的函数解冻I而如果不使用<a title="JavaScript" ><font color="#2f63b3">JavaScript</font></a>框架的时候,大家可是使用下面的封装bind()函数。      ?<br /><span style="COLOR: #006600; FONT-STYLE: italic">/************************************<br />* d事gl定<br />* @param obj   : 要绑定事件的元素<br />* @param type : 事g名称。不?"on". ?: "click" 而不?"onclick".<br />* @param fn    : 事g处理函数<br />************************************/</span><br /><span style="FONT-WEIGHT: bold; COLOR: #003366">function</span> bind<span style="COLOR: #009900">(</span> obj<span style="COLOR: #339933">,</span> type<span style="COLOR: #339933">,</span> fn <span style="COLOR: #009900">)</span><span style="COLOR: #009900">{</span><span style="FONT-WEIGHT: bold; COLOR: #000066">if</span><span style="COLOR: #009900">(</span> obj.<span style="COLOR: #660066">attachEvent</span><span style="COLOR: #009900">)</span><span style="COLOR: #009900">{</span><br />        obj<span style="COLOR: #009900">[</span><span style="COLOR: #3366cc">'e'</span><span style="COLOR: #339933">+</span>type<span style="COLOR: #339933">+</span>fn<span style="COLOR: #009900">]</span><span style="COLOR: #339933">=</span> fn<span style="COLOR: #339933">;</span><br />        obj<span style="COLOR: #009900">[</span>type<span style="COLOR: #339933">+</span>fn<span style="COLOR: #009900">]</span><span style="COLOR: #339933">=</span><span style="FONT-WEIGHT: bold; COLOR: #003366">function</span><span style="COLOR: #009900">(</span><span style="COLOR: #009900">)</span><span style="COLOR: #009900">{</span>obj<span style="COLOR: #009900">[</span><span style="COLOR: #3366cc">'e'</span><span style="COLOR: #339933">+</span>type<span style="COLOR: #339933">+</span>fn<span style="COLOR: #009900">]</span><span style="COLOR: #009900">(</span> window.<span style="COLOR: #660066">event</span><span style="COLOR: #009900">)</span><span style="COLOR: #339933">;</span><span style="COLOR: #009900">}</span><br />        obj.<span style="COLOR: #660066">attachEvent</span><span style="COLOR: #009900">(</span><span style="COLOR: #3366cc">'on'</span><span style="COLOR: #339933">+</span>type<span style="COLOR: #339933">,</span> obj<span style="COLOR: #009900">[</span>type<span style="COLOR: #339933">+</span>fn<span style="COLOR: #009900">]</span><span style="COLOR: #009900">)</span><span style="COLOR: #339933">;</span><span style="COLOR: #009900">}</span><span style="FONT-WEIGHT: bold; COLOR: #000066">else</span><br />        obj.<span style="COLOR: #660066">addEventListener</span><span style="COLOR: #009900">(</span> type<span style="COLOR: #339933">,</span> fn<span style="COLOR: #339933">,</span><span style="FONT-WEIGHT: bold; COLOR: #003366">false</span><span style="COLOR: #009900">)</span><span style="COLOR: #339933">;</span><span style="COLOR: #009900">}</span></p> <p> <span id="more-408"> </span>例如ldocumentd一个点M件     ?<br /><span style="FONT-WEIGHT: bold; COLOR: #003366">var</span> fn<span style="COLOR: #339933">=</span><span style="FONT-WEIGHT: bold; COLOR: #003366">function</span><span style="COLOR: #009900">(</span><span style="COLOR: #009900">)</span><span style="COLOR: #009900">{</span><span style="COLOR: #000066">alert</span><span style="COLOR: #009900">(</span><span style="COLOR: #3366cc">"Hello, World!!"</span><span style="COLOR: #009900">)</span><span style="COLOR: #339933">;</span><span style="COLOR: #009900">}</span><span style="COLOR: #339933">;</span><br />bind<span style="COLOR: #009900">(</span>document<span style="COLOR: #339933">,</span><span style="COLOR: #3366cc">"click"</span><span style="COLOR: #339933">,</span> fn<span style="COLOR: #009900">)</span><span style="COLOR: #339933">;</span></p> <h3>删除事gl定 unbind()</h3> <p>unbind()对于上面的bind()函数       <br /><span style="COLOR: #006600; FONT-STYLE: italic">/************************************<br /> * 删除事gl定<br /> * @param obj : 要删除事件的元素<br /> * @param type : 事g名称。不?"on". ?: "click" 而不?"onclick"<br /> * @param fn : 事g处理函数<br /> ************************************/</span><br /><span style="FONT-WEIGHT: bold; COLOR: #003366">function</span> unbind<span style="COLOR: #009900">(</span> obj<span style="COLOR: #339933">,</span> type<span style="COLOR: #339933">,</span> fn <span style="COLOR: #009900">)</span><span style="COLOR: #009900">{</span><span style="FONT-WEIGHT: bold; COLOR: #000066">if</span><span style="COLOR: #009900">(</span> obj.<span style="COLOR: #660066">detachEvent</span><span style="COLOR: #009900">)</span><span style="COLOR: #009900">{</span><br />        obj.<span style="COLOR: #660066">detachEvent</span><span style="COLOR: #009900">(</span><span style="COLOR: #3366cc">'on'</span><span style="COLOR: #339933">+</span>type<span style="COLOR: #339933">,</span> obj<span style="COLOR: #009900">[</span>type<span style="COLOR: #339933">+</span>fn<span style="COLOR: #009900">]</span><span style="COLOR: #009900">)</span><span style="COLOR: #339933">;</span><br />        obj<span style="COLOR: #009900">[</span>type<span style="COLOR: #339933">+</span>fn<span style="COLOR: #009900">]</span><span style="COLOR: #339933">=</span><span style="FONT-WEIGHT: bold; COLOR: #003366">null</span><span style="COLOR: #339933">;</span><span style="COLOR: #009900">}</span><span style="FONT-WEIGHT: bold; COLOR: #000066">else</span><br />        obj.<span style="COLOR: #660066">removeEventListener</span><span style="COLOR: #009900">(</span> type<span style="COLOR: #339933">,</span> fn<span style="COLOR: #339933">,</span><span style="FONT-WEIGHT: bold; COLOR: #003366">false</span><span style="COLOR: #009900">)</span><span style="COLOR: #339933">;</span><span style="COLOR: #009900">}</span></p> <p>例如删除W一个绑定的document点击事gQ?br />unbind<span style="COLOR: #009900">(</span>document<span style="COLOR: #339933">,</span><span style="COLOR: #3366cc">"click"</span><span style="COLOR: #339933">,</span>fn<span style="COLOR: #009900">)</span><span style="COLOR: #339933">;<br />摘自Q?a >http://www.js8.in/408.html</a></span></p> <img src ="http://www.aygfsteel.com/kyleYang/aggbug/328466.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kyleYang/" target="_blank">飞熊</a> 2010-08-11 08:30 <a href="http://www.aygfsteel.com/kyleYang/archive/2010/08/11/328466.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现JavaScript跨浏览器http://www.aygfsteel.com/kyleYang/archive/2010/08/11/328465.html飞熊飞熊Wed, 11 Aug 2010 00:28:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/08/11/328465.htmlhttp://www.aygfsteel.com/kyleYang/comments/328465.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/08/11/328465.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/328465.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/328465.html开发跨览器的JavaScriptQƈ不是一件很Ҏ的事Q下面是一些经验ȝ?/p>

一、动态向表中d?/p>

  • 问题QIE中,不能行增加到表table?
  • 解决ҎQ将行增加到表体tbody?
  • CZQ?a >点击查看

二、动态设|元素style属?/p>

  • 问题QIE下支持object.style.cssText="style:value"QFirefox下用object.setAttribute("style", value)
  • 解决ҎQ统一用object.style.属性=倹{?
  • CZQ?a >点击查看

三、动态设|元素的Class属?/p>

  • 问题QIE下用object.setAttribute("className", value)QFirefox下用object.setAttribute("class", value)?
  • 解决ҎQ统一用object.className=value?
  • CZQ?a >点击查看

四、动态创建Input元素

  • 问题QIE中先d元素Q后讄的属性不起作用?
  • 解决ҎQ先d属性,再添加元素?
  • CZQ?a >点击查看

五、动态设|标{ֆ?/p>

  • 问题QIE中用innerText属性,相反圎ͼFirefox下用textContent属性?
  • 解决ҎQ先判断览器类型,再分别设|,当然也可以同时设|。还有一U方法就是用innerHTML来替换?
  • CZQ?a >点击查看

六、增加和删除Option

  • 问题Q增加OptionӞFirefox下不支持object.addҎ。删除OptionӞFirefox下不支持object.options .removeҎ?
  • 解决ҎQ增加OptionӞ使用object.options.addҎ。删除OptionӞ使用object.removeҎ。另外也可以用DOM的AppendChild和removeChildҎ?
  • CZQ?a >点击查看 

七、动态创建单选按?/p>

  • 问题QIE不能用setAttributeҎdname属性,相反圎ͼFirefox下不能用createElement(htmlStr)来添加name属性?
  • 解决ҎQ先判断览器类型,再分别设|。当然也可以同时讄?
  • CZQ?a >点击查看

八、document.formName.item("itemName")

  • 问题QIE下,可以使用 document.formName.item("itemName") ?document.formName.elements ["elementName"]QFirefox下,只能使用document.formName.elements["elementName"]?
  • 解决ҎQ统一使用document.formName.elements["elementName"]?

九、动态创建单选按?/p>

  • 问题QIE下,可以使用()或[]获取集合cd象;Firefox下,只能使用 []获取集合cd象?
  • 解决ҎQ统一使用[]获取集合cd象?

十、自定义属?/p>

  • 问题QIE下,可以使用获取常规属性的Ҏ来获取自定义属性,也可以?getAttribute() 获取自定义属性;Firefox下,只能使用 getAttribute() 获取自定义属?
  • 解决ҎQ统一通过 getAttribute() 获取自定义属性?

十一、eval("idName")

  • 问题QIE下,可以使用 eval("idName") ?getElementById("idName") 来取?id ?idName 的HTML对象QFirefox下,只能使用 getElementById("idName") 来取?id ?idName 的HTML对象?
  • 解决ҎQ统一?getElementById("idName") 来取?id ?idName 的HTML对象?

十二、event.srcElement

  • 问题QIE下,even对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性?
  • 解决ҎQ用srcObj = event.srcElement ? event.srcElement : event.target;

十三、访问的父元?/p>

  • 问题Q在IE下,使用obj.parentElement或obj.parentNode讉Kobj的父l点Q在firefox下,使用obj.parentNode讉Kobj的父l点?
  • 解决ҎQ因为firefox与IE都支持DOMQ因此统一使用obj.parentNode 来访问obj的父l点?

十四、innerText

  • 问题QinnerText在IE中能正常工作Q但是innerText在FireFox中却不行?
  • 解决ҎQ在非IE览器中使用textContent代替innerText?

十五、模态和非模态窗口问?/p>

  • 问题QIE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;Firefox下则不能?
  • 解决ҎQ直接?window.open(pageURL,name,parameters) 方式打开新窗口。如果需要将子窗口中的参C递回父窗口,可以在子H口中用window.opener来访问父H口。如果需要父H口控制子窗口的话,使用var subWindow = window.open(pageURL,name,parameters); 来获得新开的窗口对象?

十六、frame和iframe问题

  • 问题Q要讉Kframe对象QIE下用window.frameId或者window.frameName来访问这个frame对象QFirefox下用window.frameName来访问这个frame对象Q?
  • 解决ҎQ统一使用 window.document.getElementById("frameId") 来访问这个frame对象。在IE和Firefox中都可以使用window.document.getElementById("frameId").src 或window.frameName.location来切换frame的内容;如果需要将frame中的参数传回父窗口,可以在frame中用parent关键字来讉K父窗口?/li>


飞熊 2010-08-11 08:28 发表评论
]]>
setCapture和releaseCapture的小应用http://www.aygfsteel.com/kyleYang/archive/2010/06/22/324190.html飞熊飞熊Tue, 22 Jun 2010 09:08:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/06/22/324190.htmlhttp://www.aygfsteel.com/kyleYang/comments/324190.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/06/22/324190.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/324190.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/324190.htmlweb开发和windows开发最大的区别是windows开发是有状态的,而web开发是无状态的,在windows?一切操作都可以q序来控制 ,除非强制执行ctrl+alt+del;但web操作׃一样了,即执行很重要的操作,用户一点击览器关闭按?将前面操作成果化ؓ乌有.管可以在onunload事g中加些代?让用户可以选择是否退?但不能从Ҏ上解决问?
        前几?从网上看到setCaptureҎ,了解了一?大体是这L意?当在IE文档某个区域中用了q个Ҏ,q且写了onclick或者onmouse***{有关的鼠标事gҎ,那么它就会监视相应的鼠标操作,即你的鼠标Ud了IE,它也一栯捕获?如果你在某div中的onclick事g中写了一个alert命o,q时,你点ȝ关闭按钮,它也一样会弹出alertH口.releaseCapture与setCaptureҎ相反,释放鼠标监控.
        利用q个Ҏ?我们可以延缓IE的关闭窗口等破坏性操?一些重要的操作能够在破坏性操作执行之前得到处?
        有一炚w?setCapture和releaseCapture 不支持键盘事?只对onmousedown, onmouseup, onmousemove, onclick, ondblclick, onmouseover, onmouseoutq样的鼠标事件v作用.
        下面是一个小例子,若我们要对divMainq个div元素里面的内容进行保?
         1). 对divMain执行setCaptureҎ:
document.getElementById("divMain").setCapture();
2).加入一按钮btnChange,可以q行setCapture和releaseCapture切换,定义一全局变量;
var isFreeze = true;
3).在btnChange的onclick事g?加入下列代码:
function change_capture(obj)
...{
        isFreeze = !isFreeze;
    if(isFreeze)
    ...{
        obj.value = "releaseCapture";
        document.getElementById("divMain").setCapture();
    }
    else
    ...{
        obj.value = "setCapture";
        alert('保存Q?);                        //可以执行重要操作
        document.getElementById("divMain").releaseCapture();
    }
}4).divMain的onclick事g?加入下列代码:
function click_func()
...{
    if(event.srcElement.id == "divMain")
    ...{
        alert("处理?..");                                                            //常规操作
        document.getElementById("divMain").setCapture();
    }
    else
    ...{
        if(isFreeze && event.srcElement.id != "btnChange")
        ...{
            alert('未执行releaseCapture,不能点击');
            document.getElementById("divMain").setCapture();
        }
    }
}5).对ALT+F4q行处理,在body的onkeydown事g中加入下列代?
function keydown_func()
...{
    if (event.keyCode==115  && event.altKey)            //ALT+F4
    ...{
        if(isFreeze)
        ...{
                alert('保存Q?);                                        //可以执行重要操作
               }           
            //window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");           
        //return false;
        }
        document.getElementById("divMain").setCapture();
}完整代码如下:
<HTML>
    <head>
        <title>setCapture和releaseCapture的小应用</title>
        <SCRIPT LANGUAGE="JavaScript">...
        <!--     
            var isFreeze = true;
           
            function click_func()
            ...{
                if(event.srcElement.id == "divMain")
                ...{
                    alert("处理?..");                                                            //常规操作
                    document.getElementById("divMain").setCapture();
                }
                else
                ...{
                    if(isFreeze && event.srcElement.id != "btnChange")
                    ...{
                        alert('未执行releaseCapture,不能点击');
                        document.getElementById("divMain").setCapture();
                    }
                }
            }
           
            function keydown_func()
            ...{
               
                if (event.keyCode==115  && event.altKey)            //ALT+F4
                ...{
                    if(isFreeze)
                    ...{
                alert('保存Q?);                                        //可以执行重要操作
               }
           
            //window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
           
                    //return false;
        }
        document.getElementById("divMain").setCapture();
            }
           
            function change_capture(obj)
            ...{
                isFreeze = !isFreeze;
                if(isFreeze)
                ...{
                    obj.value = "releaseCapture";
                    document.getElementById("divMain").setCapture();
                }
                else
                ...{
                    obj.value = "setCapture";
                    alert('保存Q?);                                    //可以执行重要操作
                    document.getElementById("divMain").releaseCapture();
                }
            }
        //-->
        </SCRIPT>
    </head>
    <BODY  onkeydown="keydown_func();">
        <div id="divMain" style="width:500px;height:400px;border:1px solid #999;padding:2px" onclick="click_func();">
            点一下IE的菜单或者按钮看?) 又或者IEH口外的地方
            <input type="button" value="releaseCapture" onclick="change_capture(this);" id="btnChange">
            <script language="javascript">...
                document.getElementById("divMain").setCapture();
            </script>
        </div>
       
    </BODY>
</HTML>注意:该实例仅能应用于IE


本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/redleaf1995/archive/2008/03/06/2154784.aspx



飞熊 2010-06-22 17:08 发表评论
]]>
call、apply、caller、callee使用Ҏhttp://www.aygfsteel.com/kyleYang/archive/2010/06/22/324189.html飞熊飞熊Tue, 22 Jun 2010 09:06:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/06/22/324189.htmlhttp://www.aygfsteel.com/kyleYang/comments/324189.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/06/22/324189.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/324189.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/324189.html 一、call Ҏ
调用一个对象的一个方法,以另一个对象替换当前对?其实是更改对象的内部指针,x变对象的this指向的内??
Js代码
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj
可选项。将被用作当前对象的对象?
arg1, arg2, , argN
可选项。将被传递方法参数序列?
说明
call Ҏ可以用来代替另一个对象调用一个方法。call Ҏ可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提?thisObj 参数Q那?Global 对象被用?thisObj?
Js代码

复制代码 代码如下:

<input type="text" id="myText" value="input text"> Code
function Obj(){this.value="对象Q?;}
var value="global 变量";
function Fun1(){alert(this.value);}
window.Fun1(); //global 变量
Fun1.call(window); //global 变量
Fun1.call(document.getElementById('myText')); //input text
Fun1.call(new Obj()); //对象Q?/div>
Js代码
Code
复制代码 代码如下:

var first_object = {
num: 42
};
var second_object = {
num: 24
};
function multiply(mult) {
return this.num * mult;
}
multiply.call(first_object, 5); // returns 42 * 5
multiply.call(second_object, 5); // returns 24 * 5

二、applyҎ
applyҎ的第一个参C是要传入l当前对象的对象Q即函数内部的this。后面的参数都是传递给当前对象的参数?
对于apply和call两者在作用上是相同的,但两者在参数上有区别的。对于第一个参数意义都一P但对W二个参敎ͼapply传入的是一个参数数l,也就是将多个参数l合成ؓ一个数l传入,而call则作为call的参C入(从第二个参数开始)?
?func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])同时使用apply的好处是可以直接当前函数的arguments对象作ؓapply的第二个参数传入?
Js代码
复制代码 代码如下:

var func=new function(){this.a="func"}
var myfunc=function(x,y){
var a="myfunc";
alert(this.a);
alert(x + y);
}
myfunc.call(func,"var"," fun");// "func" "var fun"
myfunc.apply(func,["var"," fun"]);// "func" "var fun"

三、caller 属?
q回一个对函数的引用,卌用了当前函数的函C?
functionName.caller :functionName 对象是所执行函数的名U?
说明:
对于函数来说Qcaller 属性只有在函数执行时才有定义?如果函数是由 JScript E序的顶层调用的Q那?caller 包含的就?null 。如果在字符串上下文中?caller 属性,那么l果?functionName.toString 一P也就是说Q显C的是函数的反编译文本?
Js代码
复制代码 代码如下:

function CallLevel(){
if (CallLevel.caller == null)
alert("CallLevel was called from the top level.");
else
alert("CallLevel was called by another function:\n"+CallLevel.caller);
}
function funCaller(){
CallLevel();
}
CallLevel();
funCaller()

四、callee属?
q回正被执行?Function 对象Q也是所指定?Function 对象的正文?
[function.]arguments.callee:可选项 function 参数是当前正在执行的 Function 对象的名U?
说明:
callee 属性的初始值就是正被执行的 Function 对象?
callee 属性是 arguments 对象的一个成员,它表C对函数对象本n的引用,q有利于?
函数的递归或者保证函数的装性,例如下边CZ的递归计算1到n的自然数之和。而该属?
仅当相关函数正在执行时才可用。还有需要注意的是callee拥有length属性,q个属性有?
用于验证q是比较好的。arguments.length是实参长度,arguments.callee.length?
形参长度Q由此可以判断调用时形参长度是否和实参长度一致?
Js代码
复制代码 代码如下:

//callee可以打印其本w?
function calleeDemo() {
alert(arguments.callee);
}
//用于验证参数
function calleeLengthDemo(arg1, arg2) {
if (arguments.length==arguments.callee.length) {
window.alert("验证形参和实参长度正!");
return;
} else {
alert("实参长度Q? +arguments.length);
alert("形参长度Q?" +arguments.callee.length);
}
}
//递归计算
var sum = function(n){
if (n <= 0)
return 1;
else
return n Qarguments.callee(n - 1)
}

五、bind
Js代码
复制代码 代码如下:

var first_object = {
num: 42
};
var second_object = {
num: 24
};
function multiply(mult) {
return this.num * mult;
}
Function.prototype.bind = function(obj) {
var method = this,
temp = function() {
return method.apply(obj, arguments);
};
return temp;
}
var first_multiply = multiply.bind(first_object);
first_multiply(5); // returns 42 * 5
var second_multiply = multiply.bind(second_object);
second_multiply(5); // returns 24 * 5

六、JS闭包(Closure)
所谓“闭包”,指的是一个拥有许多变量和l定了这些变量的环境的表辑ּQ通常是一个函敎ͼQ因而这些变量也是该表达式的一部分?
关于闭包Q最单的描述是 ECMAScript 允许使用内部函数Q-卛_数定义和函数表达式位于另一个函数的函数体内。而且Q这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这L内部函数在包含它们的外部函数之外被调用时Q就会Ş成闭包。也是_内部函数会在外部函数q回后被执行。而当q个内部函数执行Ӟ它仍然必需讉K其外部函数的局部变量、参C及其他内部函数。这些局部变量、参数和函数声明Q最初时Q的值是外部函数q回时的|但也会受到内部函数的影响?
而言之,闭包的作用就是在out function执行完ƈq回后,闭包使得Javascript的垃圑֛收机制GC不会收回out function所占用的资源,因ؓout function的内部函数inner function的执行需要依赖out function中的变量?
闭包的两个特点:
1、作Z个函数变量的一个引?- 当函数返回时Q其处于Ȁzȝ态?
2、一个闭包就是当一个函数返回时Q一个没有释放资源的栈区?
?Q?
Html代码
复制代码 代码如下:

<script type="text/javascript">
function setupSomeGlobals() {
// Local variable that ends up within closure
var num = 666;
// Store some references to functions as global variables
gAlertNumber = function() { alert(num); }
gIncreaseNumber = function() { num++; }
gSetNumber = function(x) { num = x; }
}
</script>
<button onclick="setupSomeGlobals()">生成 - setupSomeGlobals()</button>
<button onclick="gAlertNumber()">输出?- gAlertNumber()</button>
<button onclick="gIncreaseNumber()">增加 - gIncreaseNumber()</button>
<button onclick="gSetNumber(5)">赋? - gSetNumber(5)</button>

?Q?
Html代码
复制代码 代码如下:

<script type="text/javascript">
function newClosure(someNum, someRef) {
// Local variables that end up within closure
var num = someNum;
var anArray = [1,2,3];
var ref = someRef;
return function(x) {
num += x;
anArray.push(num);
alert('num: ' + num +
' nanArray ' + anArray.toString() +
' nref.someVar ' + ref.someVar);
}
}
var closure1 = newClosure(40, {someVar:' never-online'})
var closure2 = newClosure(99, {someVar:' BlueDestiny'})
closure1(4)
closure2(3)
</script>

?Q?
Js代码
复制代码 代码如下:

<script language="javascript">
/* 声明一个全局变量 - getImgInPositionedDivHtml - q将一ơ调用一个外部函数表辑ּq回的内部函数赋l它?
q个内部函数会返回一个用于表C绝对定位的 DIV 元素包围着一?IMG 元素 ?HTML 字符Ԍq样一来,
所有可变的属性值都p用该函数时的参数提供Q?
*/
var getImgInPositionedDivHtml = (function(){
/* 外部函数表达式的局部变?- buffAr - 保存着~冲数组。这个数l只会被创徏一ơ,生成的数l实例对内部函数而言永远是可用的
因此Q可供每ơ调用这个内部函数时使用?
其中的空字符串用作数据占位符Q相应的数据
由内部函数插入到这个数l中Q?
*/
var buffAr = [
'<div id="',
'', //index 1, DIV ID 属?
'" style="position:absolute;top:',
'', //index 3, DIV 剙位置
'px;left:',
'', //index 5, DIV 左端位置
'px;width:',
'', //index 7, DIV 宽度
'px;height:',
'', //index 9, DIV 高度
'px;overflow:hidden;\"><img src=\"',
'', //index 11, IMG URL
'\" width=\"',
'', //index 13, IMG 宽度
'\" height=\"',
'', //index 15, IMG 调蓄
'\" alt=\"',
'', //index 17, IMG alt 文本内容
'\"><\/div>'
];
/* q回作ؓ对函数表辑ּ求值后l果的内部函数对象?
q个内部函数是每次调用执行的函?
- getImgInPositionedDivHtml( ... ) -
*/
return (function(url, id, width, height, top, left, altText){
/* 不同的参数插入到缓冲数l相应的位置Q?
*/
buffAr[1] = id;
buffAr[3] = top;
buffAr[5] = left;
buffAr[13] = (buffAr[7] = width);
buffAr[15] = (buffAr[9] = height);
buffAr[11] = url;
buffAr[17] = altText;
/* q回通过使用I字W串Q相当于数l元素连接v来)
q接数组每个元素后Ş成的字符Ԍ
*/
return buffAr.join('');
}); //:内部函数表达式结束?
})();//自调?
alert(getImgInPositionedDivHtml);//昄q回的函?
alert(getImgInPositionedDivHtml("img.gif","img",100,50,0,0,"Test"));
</script>

说明Q其中的关键技巧在于通过执行一个单行(in-lineQ函数表辑ּ创徏一个额外的执行环境Q而将该函数表辑ּq回的内部函C为在外部代码中用的函数。此Ӟ~冲数组被定义ؓ函数表达式的一个局部变量。这个函数表辑ּ只需执行一ơ,而数l也只需创徏一ơ,可以供依赖它的函数重复使用?
七、原型链
ECMAScript ?Object cd定义了一个内?[[prototype]] 属性。这个属性不能通过脚本直接讉KQ但在属性访问器解析q程中,则需要用到这个内部[[prototype]] 属性所引用的对象链Q-卛_型链。可以通过一个公q prototype 属性,来对与内部的 [[prototype]] 属性对应的原型对象q行赋值或定义?
?Q?
<script language="javascript">
function NumObject(formalParameter){
this.testNumber = formalParameter;
}
function StrObject(formalParameter){
this.testString = formalParameter;
}
//?NumObjectcȝ实例替换了所有与 StrObjectcȝ实例相关联的原型?
StrObject.prototype =new NumObject(6);
var objRef = new StrObject( "String_Value" );
//当某个属性访问器试d?objectRef 所引用的对象的属性值时Q整个原型链都会被搜索?
//不论是在对象或对象的原型中,d命名属性值的时候只q回首先扑ֈ的属性倹{而当为对象的命名属性赋值时Q如果对象自w不存在该属性则创徏相应的属性?
alert(objRef.testString);//output "String_Value"
alert(objRef.testNumber);//output "6"
alert(objRef.toString);
//StrObject 的实例拥有一个原型链。该链中的第一个对象是在创建后被指定给 StrObject 构造函数的 prototype 属性的 NumObject 的一个实例。NumObject 的实例也有一个原型,即与 Object.prototype 所引用的对象对应的默认?Object 对象的原型。最后, Object.prototype 有一个gؓ null 的原型,因此q条原型铑ֈ此结束?
objRef.testNumber = 3;//对象自n不存在该属性则创徏相应的属?
alert(objRef.testNumber);//自n有了属性,属性访问器不会再进一步搜索原型链
alert(NumObject.prototype.isPrototypeOf(objRef));// output "true"
</script>


飞熊 2010-06-22 17:06 发表评论
]]>Div样式ȝhttp://www.aygfsteel.com/kyleYang/archive/2010/03/19/315869.html飞熊飞熊Fri, 19 Mar 2010 01:48:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/03/19/315869.htmlhttp://www.aygfsteel.com/kyleYang/comments/315869.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/03/19/315869.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/315869.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/315869.html阅读全文

飞熊 2010-03-19 09:48 发表评论
]]>
OpenerQparentQtopQself{窗体属性的比较http://www.aygfsteel.com/kyleYang/archive/2010/03/18/315795.html飞熊飞熊Thu, 18 Mar 2010 07:52:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/03/18/315795.htmlhttp://www.aygfsteel.com/kyleYang/comments/315795.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/03/18/315795.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/315795.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/315795.html1.OpenerQ获取创建本H口的窗口的引用Q不在本H口的对象层ơ体pM

只能在用window.open打开的页面中H口中可以访问到opener属性,而对于用showModalDialog和showModalessDialog弹出的窗口则不能讉K刎ͼ其opener属性引用ؓI?/p>

2.parentQtopQ获取的是对本窗口中对象层次元素的引用,对于用iframe或者frame的较有实际意?br />对于用window.open和showModalDialog以及showModalessDialog打开的窗口而言Q返回的是本H口对象层次的元素引用,对于q种情况QparentQtopQself三者的引用相同Q都是当前的H体自nQ但对于H体中的frame和iframe加蝲的页面元素来_q回的则不相同。parent q回的时包含该iframe的页面窗口引用,top则返回最上层的窗口引用,self当然q回的仍然是自n的引用?br /> 
3.selfQwindow都是获取当前面H口自n对象的引?br />每个面自n代码中访问页面自w窗体可以采用self和window来访问到?br /> 
4.利用window参数传递和dialogArguments来获取弹出窗口的H口引用
Z能够在用showModalDialog和showModalessDialog弹出H口中引用到弹出H口的引用,我们可以在showModalDialog和showModalessDialog的第二个参数传入windowQ然后再弹出的页面中用dialogArguments来获取刚才传入的windowQ即弹出H口的窗口的引用?br />转蝲Q?a href="/standlww/archive/2009/04/28/267807.html">http://www.aygfsteel.com/standlww/archive/2009/04/28/267807.html



飞熊 2010-03-18 15:52 发表评论
]]>
js常用代码http://www.aygfsteel.com/kyleYang/archive/2010/03/09/314922.html飞熊飞熊Tue, 09 Mar 2010 03:07:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/03/09/314922.htmlhttp://www.aygfsteel.com/kyleYang/comments/314922.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/03/09/314922.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/314922.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/314922.html<table border oncontextmenu=return(false)><td>no</table> 可用于Table 

2. <body onselectstart="return false"> 取消选取、防?b style="COLOR: black; BACKGROUND-COLOR: #99ff99">复制 javascript技?/span>

3. onpaste="return false" 不准_脓技?/span>

4. oncopy="return false;" oncut="return false;" 防止复制的javascirptҎ

5.<noscript>// 止另存?br />      <iframe src="*.htm"></iframe>
   </noscript>

功能Q?b style="COLOR: black; BACKGROUND-COLOR: #a0ffff">止右键、禁选择、禁_脓、禁shift、禁ctrl、禁alt

<script language="JavaScript">
<!--
function key(){ 
   //Shift
   if(event.shiftKey){
      window.close();
   }
   //Alt
   if(event.altKey){
      window.close();
   }
   //Ctrl
   if(event.ctrlKey){
      window.close();
   }

   return false;
}

document.onkeydown=key;

if (window.Event)
      document.captureEvents(Event.MOUSEUP);

function nocontextmenu(){
   event.cancelBubble = true
   event.returnValue = false;
   return false;
}

function norightclick(e){
   if (window.Event){
      if (e.which == 2 || e.which == 3)
      return false;
   }
   else
      if (event.button == 2 || event.button == 3){
            event.cancelBubble = true
            event.returnValue = false;
            return false;
      }
}

//右?br />document.oncontextmenu = nocontextmenu;  // for IE5+
document.onmousedown = norightclick;  // for all others
//-->
</script>

<body onselectstart="return false"; onpaste="return false";> 


在JSP标准的语法中Q如果pageEncoding属性存在,那么JSP面的字W编码方式就由pageEncoding军_Q否则就由contentType属性中的charset军_Q如果charset也不存在QJSP面的字W编码方式就采用默认的ISO-8859-1?

//d到收藏夹  
function AddToFavorite()  
{  
    if (document.all){  
       window.external.addFavorite(document.URL,document.title);  
    }else if (window.sidebar){  
       window.sidebar.addPanel(document.title, document.URL, "");  
    }  
}  
  
//设ؓ首页  
function setHomepage(){  
    if (document.all){  
    document.body.style.behavior='url(#default#homepage)';  
    document.body.setHomePage(document.URL);  
  }else if (window.sidebar){  
        if(window.netscape){  
       try{    
          netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");    
       }catch (e){    
                    alert( "该操作被览器拒l,如果惛_用该功能Q请在地址栏内输入 about:config,然后项 signed.applets.codebase_principal_support D为true" );    
       }  
        }    
    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);  
    prefs.setCharPref('browser.startup.homepage',document.URL);  
    }  
}



飞熊 2010-03-09 11:07 发表评论
]]>
JS注意事项http://www.aygfsteel.com/kyleYang/archive/2010/01/31/311360.html飞熊飞熊Sat, 30 Jan 2010 16:25:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/01/31/311360.htmlhttp://www.aygfsteel.com/kyleYang/comments/311360.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/01/31/311360.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/311360.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/311360.html         当一个HTML元素的属性用js改变的时候,都能通过 onpropertychange来捕莗例如一?<input name="text1" id="text1" />对象的value属性被面的脚本修改的时候,onchange无法捕获刎ͼ而onpropertychange却能够捕莗?
也就是说Qonpropertychange事g在用键盘每改变一下文本框的值或用js改变其g会触发一下,而onchange只有在用键盘改变其|然后在失ȝ?onblur)后才触发Q用js改变其g能触?onpropertychange和onchange都不文本框中的实际值有没有变,只要有改的相应操作就可能触发。有时当上面两时间都不能满需求时Q可以考虑只用onblur?br />         IE下,当一个HTML元素的属性改变的时候,都能通过 onpropertychange来捕莗例如一?<input name="text1" id="text1" />对象的value属性被面的脚本修改的时候,onchange无法捕获刎ͼ而onpropertychange却能够捕莗?br />也就是说Qonpropertychange能及时捕获属性值的变化Q而onchange在属性值改变时q必M得当前元素失ȝ?onblur)才可以激z该事gQ?span style="COLOR: red">onpropertychange事g只能在IE下?/span>?img src ="http://www.aygfsteel.com/kyleYang/aggbug/311360.html" width = "1" height = "1" />

飞熊 2010-01-31 00:25 发表评论
]]>
javaScript常用例子http://www.aygfsteel.com/kyleYang/archive/2010/01/31/311358.html飞熊飞熊Sat, 30 Jan 2010 16:19:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/01/31/311358.htmlhttp://www.aygfsteel.com/kyleYang/comments/311358.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/01/31/311358.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/311358.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/311358.html1.取消按钮按下时的虚线?
  在input里添加属性?hideFocus 或?HideFocus=true
2.只读文本框内?/strong>
      在input里添加属性?readonly
3.防止退后清I的TEXT文档(可把style内容做做为类引用)
  <INPUT style=behavior:url(#default#savehistory); type=text id=oPersistInput>
4.ENTER键可以让光标Ud下一个输入框
  <input onkeydown="if(event.keyCode==13) event.keyCode=9" >
5.只能Z?有闪?
  <input onkeyup="value=value.replace(/[ -~]/g,'')"
         onkeydown="if(event.keyCode==13) event.keyCode=9">
6.只能为数?有闪?
  <input onkeyup="value=value.replace(/[^\d]/g,'')
         "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace
         (/[^\d]/g,''))">
7.只能为数?无闪?
  <input style="ime-mode:disabled"
         onkeydown="if(event.keyCode==13) event.keyCode=9" onKeyPress="if ((event.keyCode<48
         event.keyCode>57))  event.returnValue=false">
8.只能输入英文和数?有闪?
  <input onkeyup="value=value.replace(/[\W]/g,'')"
         onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(
         /[^\d]/g,''))">
9.屏蔽输入?/strong>
  <input type="text" name="url" style="ime-mode:disabled"
         onkeydown="if(event.keyCode==13)event.keyCode=9">
10. 只能输入 数字Q小数点Q减P-Q?字符(无闪?
  <input onKeyPress="if (event.keyCode!=46 && event.keyCode!=45 &&
         (event.keyCode<48 event.keyCode>57))  event.returnValue=false">
11. 只能输入两位数Q三位小?有闪?
  <input maxlength=9
         onkeyup="if(value.match(/^\d{3}$$/)) value=value.replace(value,parseInt(value/10))
         ;value=value.replace(/\.\d*\./g,'.')" onKeyPress="if((event.keyCode<48
         event.keyCode>57) && event.keyCode!=46 && event.keyCode!=45 value.match(/^\d{3}$$/)
         /\.\d{3}$$/.test(value)) {event.returnValue=false}" id=text_kfxe name=text_kfxe>
12.只能输入数
      <input onpaste="return false" id="amount" style="IME-MODE: disabled; WIDTH: 60px; " onpropertychange="if(isNaN(value)) value=value.substring (0,value.length-1);" maxlength="5" size="14" name="amount" />
13.只能输入整数
      <input id="amount" style="IME-MODE: disabled; WIDTH: 60px; " onkeyup="this.value=this.value.replace(/\D/g,'')"  onafterpaste="this.value=this.value.replace(/\D/g,'')" maxlength="5" size="14" name="amount" type="text" />

飞熊 2010-01-31 00:19 发表评论
]]>
javascript定义二维数组的方?/title><link>http://www.aygfsteel.com/kyleYang/archive/2010/01/22/310524.html</link><dc:creator>飞熊</dc:creator><author>飞熊</author><pubDate>Fri, 22 Jan 2010 07:05:00 GMT</pubDate><guid>http://www.aygfsteel.com/kyleYang/archive/2010/01/22/310524.html</guid><wfw:comment>http://www.aygfsteel.com/kyleYang/comments/310524.html</wfw:comment><comments>http://www.aygfsteel.com/kyleYang/archive/2010/01/22/310524.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kyleYang/comments/commentRss/310524.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kyleYang/services/trackbacks/310524.html</trackback:ping><description><![CDATA[ <p>W一U办法就是用一l数l来模拟二维数组.感觉q样不是很好,有点ȝ,而且Ҏ出错</p> <p>W二U办?一l数l的分项又定义ؓ一个一l数l? q种办法看v来似乎不?主要实现Ҏ如下:<br /><a target="_blank" tip="巴士飞扬技术博?xJ2EE,Java开发思想,开发模?><font color="#095c83">java</font></a>script定义二维数组的方法?br /><a target="_blank" tip="巴士飞扬技术博?xJ2EE,Java开发思想,开发模?><font color="#095c83">java</font></a>script本n只支持一l数l, <br />有时非要用到二维数组的时候, <br />可以一l数l的分项又定义ؓ一个数l, <br />二维数组是用数l构成的数组 <br />Var aa=new Array(); //定义一l数l?br />for(i=1;i<=10;i++) <br />{ <br />    aa[i]=new Array(); //每一个子元素又定义ؓ数组 <br />    for(n=0;n<=10;n++) <br />    { <br />        aa[i][n]=i+n; //此时aa[i][n]可以看作是一个二U数l?br />    } <br />}</p> <link type="text/css" rel="stylesheet" /> <img src ="http://www.aygfsteel.com/kyleYang/aggbug/310524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kyleYang/" target="_blank">飞熊</a> 2010-01-22 15:05 <a href="http://www.aygfsteel.com/kyleYang/archive/2010/01/22/310524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Math对象应用详解http://www.aygfsteel.com/kyleYang/archive/2010/01/22/310523.html飞熊飞熊Fri, 22 Jan 2010 07:01:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/01/22/310523.htmlhttp://www.aygfsteel.com/kyleYang/comments/310523.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/01/22/310523.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/310523.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/310523.htmlJavaScript中的Math对象提供了大量的术q算功能和数值操作方法?/p>

JavaScript中的Math对象的与众不同之处在于,它是一个全局对象。在使用Math对象之前Q既不需要将一个变量声明ؓMath对象Q也不需要定义一个新的Math对象QJavaScript自动地创徏好Math对象Q我们只ȝ接用它卛_。这使得Math对象使用h很容易?/p>

Math对象的属性中包含一些经怋用的数学帔RQ如PI属?卛_周率q似?.141592653589793)。通常情况下,要访问这些属性,只须在Math之后加上一个点?.)Q然后写讉K的属性名。例如,要计一个圆的面U,可以使用如下代码Q?/p>

var radius = prompt("Give the radius of the circle", "");

var area = (Math.PI)*radius*radius;

document.write("The area is " + area);

除加(+)、减(?、乘(*)、除(/) 4个标准算术运外QMath对象q包含一些复杂的数学ҎQ用于完成算术运无法实现的复杂计算Q例如cos()Ҏ用于计算弧度参数的余弦函数。下面将介绍一些常见的数学Ҏ?/p>

1Qabs()Ҏ

abs()Ҏq回所传入参数的绝对倹{实际上Q绝对值就是一个数L正负号之后的数倹{例如,?的绝对值是1Q?的绝对值是4{。对于正敎ͼ其绝对值就是该正数本nQ例如,1的绝对值就??/p>

例如Q下面的代码对?01取绝对|q把l果输出在页面上Q?/p>

var myNumber = -101;

document.write(Math.abs(myNumber));

2Qceil()Ҏ

ceil()Ҏ用于向上取整Q它把一个数值向上舍入到最接近的最整敎ͼ卛_于Math.ceil(n)ҎQ它返回大于或{于n的最整数。例如,10.01向上取整后ؓ11Q?.99向上取整后ؓ?(q是因ؓ对于负数Q?大于?0)。ceil()Ҏ只有一个参敎ͼ即需要向上取整的数倹{?/p>

ceil()Ҏ的用与W?章中介绍q的parseInt()Ҏ是不同的。parseInt()Ҏ只是单地截断数点之后的所有数字,把整数部分保留下来。而ceil(n)Ҏ向上取_q回大于或等于n的最整数?/p>

例如Q下面的代码在面上输Z行信息,W一行ؓceil()Ҏ?01.01向上取整的结?02Q第二行为parseInt()Ҏ取整的结?01:

var myNumber = 101.01;

document.write(Math.ceil(myNumber) + "<BR>");

document.write(parseInt(myNumber));

3Qfloor()Ҏ

与ceil()ҎcMQfloor()Ҏ也用于对一个数字进行取_所不同的是Qfloor()Ҏ用于向下取整Q它把一个数值向下舍入到最接近的最大整敎ͼ卛_于Math.floor(n)ҎQ它返回小于或{于n的最大整数。例如,Math.floor(10.01)返?0Q而Math.floor(?.99)返回?0?/p>

4Qround()Ҏ

round()Ҏ用于对一个数D行四舍五入,卛_一个数数部分大于{于0.5Ӟ则向上舍入,于{于0.5时则向下舍入?/p>

例如Q对于如下代码:

var myNumber = 44.5;

document.write(Math.round(myNumber) + "<BR>");

myNumber = 44.49;

document.write(Math.round(myNumber));

对于44.5四舍五入ؓ45Q而对?4.49则四舍五入ؓ44?/p>

5Q关于取整方法的结

正如上面所qͼceil()Ҏ?floor()Ҏ和round()Ҏ都可以进行取整操作。但各个Ҏ的取整操作是不同的。对于floor(n)ҎQ它q回于或等于n的最大整敎ͼ对于ceil(n)ҎQ它q回大于或等于n的最整敎ͼ而round(n)Ҏ对nq行四舍五入。这几个Ҏ可能ҎhQ表4-3格则用实例进行了说明Q它昄了一列数|以及这些数g为参数分别传入parseInt()函数、ceil()Ҏ、floor()Ҏ和round()Ҏ时的q回倹{?/p>

表?4-3

参  ??/p>

parseInt()

Ҏ的返回?/p>

ceil()

Ҏ的返回?/p>

floor()

Ҏ的返回?/p>

round()

Ҏ的返回?/p>

10.25

10

11

10

10

10.75

10

11

10

11

10.5

10

11

10

11

?0.25

?0

?0

?1

?0

?0.75

?0

?0

?1

?1

?0.5

?0

?0

?1

?0

注意Q与表中其他的方法不同的是:parseInt()函数是一个JavaScript内置对象Q而不是Math对象的一个方法?/p>

飞熊 2010-01-22 15:01 发表评论
]]>
CSS动属性Float详解http://www.aygfsteel.com/kyleYang/archive/2009/12/16/306233.html飞熊飞熊Wed, 16 Dec 2009 15:28:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2009/12/16/306233.htmlhttp://www.aygfsteel.com/kyleYang/comments/306233.htmlhttp://www.aygfsteel.com/kyleYang/archive/2009/12/16/306233.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/306233.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/306233.html CSS动属性Float详解

什么是CSS FloatQ?/h2>

float ?css 的定位属?/strong>。在传统的印刷布局中,文本可以按照需要围l图片。一般把q种方式UCؓ“文本环l”。在|页设计中,应用了CSS的float属性的面元素像在印刷布局里面的被文字包围的图片一栗Q动的元素仍然是网|的一部分。这与用绝?定位的页面元素相比是一个明昄不同。绝对定位的面元素被从|页里面移除了Q就像印刷布局里面的文本框被设|ؓ无视面环绕一栗绝对定位的元素不会 影响其它元素Q其它元素也不会影响它,无论它是否和其它元素挨着?/p>

像这样在一个元素上用CSS讄动Q?/p>

						#sidebar { float: right; }
				

fload属性有四个可用的|Left 和Right 分别动元素到各自的方向QNone (默认? 使元素不动QInherit 会从父U元素获取float倹{?/p>

Float的用?/h2>

除了单的在图片周围包围文字,动可用于创建全部网布局?/p>

web layout CSS动属性Float详解

Float对小型的布局同样有用。例如页面中的这个小区域。如果我们在我们的小头像囄上用FloatQ当调整囄大小的时候,盒子里面的文字也自动调整位|:

reflow example 1 CSS动属性Float详解

同样的布局可以通过在外容器使用相对定位Q然后在头像上用绝对定位来实现。这U方式中Q文本不会受头像囄大小的媄响,不会随头像图片的大小而有相应变化?/p>

reflow example 2 CSS动属性Float详解

清除Float

清除(clear)是Q?float)的相兛_?一个设|了清除Float的元素不会如动所讄的一P向上Ud到Float元素的边界,而是会忽视Q动向下移动。如下,一N千言?span id="more-11034">

uncleardfooter

上例中,侧栏向右动Qƈ且短于主内容区域。页?footer)于是按Q动所要求的向上蟩C可能的空间。要解决q个问题Q可以在脚(footer)上清除Q动,以ə脚(footer)待在动元素的下面?/p>

						#footer { clear: both; }
				

cleardfooter

清除(clear)也有4个可能倹{最常用的是 bothQ清楚左右两边的动。left ?right 只能清楚一个方向的动。none 是默认|只在需要移除已指定的清除值时用到。inherit 应该时第五个|不过很奇怪的?IE 不支?q个不奇怪吧QIE 从来都这么特立独行吧 Q糖伴西U柿?。只清除左边或右边的动Q实际中很少见,不过l对有他们的用处?/p>

directionalclearing CSS动属性Float详解

伟大的塌?/h2>

使用动(float)的一个比较疑惑的事情是他们怎么影响包含他们的父元素的。如果父元素只包含Q动元素,那么它的高度׃塌羃为零。如果父元素不包含Q何的可见背景Q这个问题会很难被注意到Q但是这是一个很重要的问题?/p>

collapse CSS动属性Float详解

塌陷的直观对立面更不好,看看下面的情况:

whywecollapse CSS动属性Float详解

当上面的块元素自动扩展以适应动元素ӞD落间的文本中会出现非自然的空白换行,而且没有有效的方法来修正q个问题。对于这U情况,设计师的抱怨会更甚于对塌陷的抱怨(没理解,不是设计完成之后才会q行面~码吗?Q?p伴西红柿)?/p>

Z防止怪异的布局和跨览器的问题Q塌陷问题几乎L被要处理的。我们在容器中的动元素之后Q容器结束之前来清除动?/p>

清除动的技?/h2>

如果你很明确的知道接下来的元素会是什么,可以使用 clear:both; 来清除Q动。这个方法很不错Q它不需?hackQ不d额外的元素也使得它有良好的语义性。当然事情ƈ不是都可以这栯决的Q工L中还是需要另外几个清除Q动的工具?/p>

  • IdivҎ从字面来看,是一个空?div?br />。有时可能会?br />或者一些其他元素,但是 div 是最常用的,因ؓ它没有浏览器默认样式Q没有特D功能,而且一般不会被 css 样式化。这个方法因为只是ؓ了表玎ͼ寚w面没有上下文涵义而被U语义论者嘲W。诚Ӟ从严格的角度来说他们是对的,但是q个Ҏ有效而且没有M伤害?
  • overflow Ҏ在父元素上设|?overflow q个 css 属性。如果父元素的这个属性设|ؓ auto 或?hiddenQ父元素׃扩展以包含Q动。这个方法有着较好的语义性,因ؓ他不需要额外元素。但是,如果需要增加一个新?div 来用这个方法,其实和I?div Ҏ一h有语义了。而且要记住,overflow 属性不是ؓ了清除Q动而定义的。要心不要覆盖住内Ҏ者触发了不需要的滚动条?
  • 单清除方?/strong>使用了一个聪明的 css 伪选择W?:after)来清除Q动。比起在父元素上讄 overflowQ只需要给它增加一个额外的cM于”clearfix”的cR这个类使用如下 css:
    			.clearfix:after {
       				content: ".";
       				visibility: hidden;
       				display: block;
       				height: 0;
       				clear: both;
    			}

    q会在清除Q动的父元素之后应用一点看不见的内宏V这不是全部内容Q还需要一些额外的代码来适应那些老旧的浏览器?

不同的情况需要不同的动清除Ҏ。以一个具有不同样式块的网gؓ例?/p>

grid blocks CSS动属性Float详解

Z从视觉上较好的把怼的块联系hQ需要在必要的地方开启新行,q里是颜色改变的地方。如果每个颜色组都有一个父元素的话Q我们可以?overflow 或?单清除方法。或者,在每l之间用一个空divҎ。额外的 div 之前q不存在Q可以自p试来看看哪个Ҏ好?/p>

grid blocks cleared CSS动属性Float详解

动的问?/h2>

动因脆p饱受诟病。大多数的脆弱性来自于 IE6 及其一pd的Q动相?bug。因来越多的设计师不再支?IE6 了,你也可以不关注它了。不q对于那些要x的h来说Q这里有些大概?/p>

摘自Q?a >http://paranimage.com/css-float-attribute/

CSS?clear:both;可以l结在出C之前的Q?CSS?clear:both;可以l结在出C之前的Q?br />

例如

<style>
.demodiv{float:left;width:100px;height:50px;background:red;margin:5px;}
.d{clear:both}
</style>
<div class="demodiv">1</div>
<div class="demodiv">2</div>
<div class="d"></div>
<div class="demodiv">3</div>
<div class="demodiv">4</div>



飞熊 2009-12-16 23:28 发表评论
]]>JavaScript面向对象~程Q?Q?- cȝ定义 http://www.aygfsteel.com/kyleYang/archive/2009/12/08/305174.html飞熊飞熊Tue, 08 Dec 2009 07:40:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2009/12/08/305174.htmlhttp://www.aygfsteel.com/kyleYang/comments/305174.htmlhttp://www.aygfsteel.com/kyleYang/archive/2009/12/08/305174.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/305174.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/305174.htmlJavaScript面向对象~程Q?Q?-- 基础?br />
    上篇说过QJavaScript没有cȝ概念Q需要通过函数来实现类的定义。先通过一个例子说明:

function myClass()
{
    
var id = 1;
    
var name = "johnson";
     
    
//properties
    this.ID = id;
    
this.Name = name;
     
    
//method
    this.showMessage = function()
    
{
        alert(
"ID: " + this.ID + ", Name: " + this.Name);
    }

}


var obj1 = new myClass();
 
var obj2 = new myClass();

    function的定义实际上相当于类的构造函敎ͼ最后两句是创徏q个cȝ实例。先分析W一句:var obj1 = new myClass(); 当用new创徏cȝ实例Ӟ解释器首先会创徏一个空的对象。然后运行这个myClass函数Qƈthis指针指向q个cȝ实例。当到this.ID = id;?span id="Codehighlighter1_19_250_Open_Text">this.Name = name;?span id="Codehighlighter1_19_250_Open_Text">this.showMessage = function(){...}Ӟ便会创徏q两个属性,和这个方法,q把变量idQname的gU函数的定义赋给q两个属性及q个函数对象QshwoMessageQ。这个过E相当于初始化这个对象,cM于C# 中的构造函数。最后newq回q个对象。再看第二句Q?span style="COLOR: #0000ff">var obj2 = new myClass(); 执行q程与上一句代码相同,卛_Z个空对象Q然后执行myClassq个函数Q定义两个属性和一个方法?/span>
   
    从上面的分析中可以看刎ͼ上面q种实现cȝ方式Q即在函数的定义中定义类的属性方法。存在着弊端。如果需要创Z个或更多q个cȝ实例Ӟ上文是两个,q些属性会被重复的创徏多次?br />   
    那么如何避免q种情况呢?上一中也曾提到q用prototype。prototype和它的名字一h一个原型,每一个function都有一个子对象prototypeQ它其实表示q个function对象的成员的集合Q由于这里我们用function实现cȝQ所以可以说prototype其实是便是cȝ成员的集合。prototype定义的属性和Ҏ执行在函数的构造体执行之前Q所以当new一个对象之前,其实prototype的成员已l执行过了。先看一个例子:
function myClass()
{
    
//构造函?/span>
}

 
myClass.prototype 
=
{
    ID: 
1,
    Name: 
"johnson",
    showMessage: 
function()
    
{
        alert(
"ID: " + this.ID + ", Name: " + this.Name);
    }

}

 
var obj1 = new myClass();
var obj2 = new myClass();

    cȝl构q是和前面的例子相同Q只不过q里是利用了prototype来实现。还是先看最后两句,前面说过Qprototype是执行在函数构造体之前Q即执行?span style="COLOR: #0000ff">var
 obj1 = new myClass();之前Q这个类已经有了IDQName属性和showMessageҎ。执行者一句时执行q程如下Q注意和前一个例子比较:首先q是创徏一个空的对象,q把this指针指向q个对象。然后将函数的prototype对象的所有成员都赋给q个对象Q注意没有再创徏q些成员Q。然后执行函C。最后newq回q个对象。执行下一句时Q同h行此q程Q不会重复创些成员?br />   
    上面的代码还只是一个例子,在实际的目中,可能出现的是cM有大量的成员Q同时可能需要创建大量的实例。这是prototype׃昄其优性了。另外上面的代码中用了大括可法定义了prototype的成员,q样看v来代码更清晰。这是一U比较推荐的cȝ设计模式。当然在众多的项目中Q可能还会发现更好的模式Q我们也希望能有更优化的JavaScript的编E模式不断推陈出斎ͼ也希望随着旉的推U,各主浏览器也对JavaScript的解析都标准Q统一?br />
    上面说过prototype定义的成员是发生在构造体之前Q可以证明一下,在上面的例子中,构造体是空的,在构造函C加入一?span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'">alert(this.Name);Q当执行?span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'">var obj1 = new myClass();Ӟ会看到弹出对话框Q显C正的属性倹{?br />
      写了q段文字之后承蒙多ؓ兄弟的点评,收获匪浅。对上面的例子进一步讨论,如下代码Q?br />
function subClass(){ }
subClass.prototype 
=
{
    Name: 
"sub"
}


function myClass()
{
    
//构造函?/span>
}

 
myClass.prototype 
=
{
    ID: 
1,
    Name: 
"johnson",
    SubObj: 
new subClass(),
    showMessage: 
function()
    
{
        alert(
"ID: " + this.ID + ", Name: " + this.Name + "SubObj.Name:" + this.SubObj.Name);
    }

}

 
var obj1 = new myClass();
obj1.SubObj.Name 
= "XXX";
obj1.showMessage();
var obj2 = new myClass();
obj2.showMessage();
    q里在myClass中定义了一个引用类型,其类型是我们自定义的一个subClassc,q个子类中有一个Name属性。由于prototype对象是共享的Q按照我们上面的分析Q在执行var obj1 = new myClass();Ӟ会把myClass的prototype中的成员复制l这个obj1实例。但q里SubObj是一个引用类型,在执行到var obj2 = new myClass();Ӟprototype中的IDQName成员会复制到obj2中,但SubObjq个属性不会复制过去,而是引用了prototype中的SubObjQ所以因Z一句修改了obj1.Subobj.Name的|所以在用new生成obj2实例Ӟ引用C修改后的倹{?br />
    所以借用prototype定义cLQ依焉要将属性定义在构造体中,而将Ҏ定义在该构造体的原型上。如下:
function myClass(id, name)
{
    
this.ID = id;
    
this.Name = name;
}

 
myClass.prototype 
=
{
    showMessage: 
function()
    
{
        alert(
"ID: " + this.ID + ", Name: " + this.Name);
    }
,
    showMessage2: 
function()
    
{
        alert(
"Method2");
    }

}

 
var obj1 = new myClass(1"johnson");
obj1.showMessage();
obj1.Name
="John";
obj1.showMessage();
var obj2 = new myClass(2"Amanda");
obj2.showMessage();

     关于U有成员Q共有成员以及静态成员,cȝl承Q抽象类Q虚ҎQ类的反等实现ҎQ以后还会坚持写下去。不q我觉得需要说一下的是,我打写的是JavaScript面向对象的基实现Q如果需要深入的学习参考李战老哥的“甘露模型”?br />

飞熊 2009-12-08 15:40 发表评论
]]>
JavaScript面向对象~程Q?Q?/title><link>http://www.aygfsteel.com/kyleYang/archive/2009/12/08/305173.html</link><dc:creator>飞熊</dc:creator><author>飞熊</author><pubDate>Tue, 08 Dec 2009 07:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/kyleYang/archive/2009/12/08/305173.html</guid><wfw:comment>http://www.aygfsteel.com/kyleYang/comments/305173.html</wfw:comment><comments>http://www.aygfsteel.com/kyleYang/archive/2009/12/08/305173.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kyleYang/comments/commentRss/305173.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kyleYang/services/trackbacks/305173.html</trackback:ping><description><![CDATA[自从有了Ajaxq个概念QJavaScript作ؓAjax的利器,其作用一路飙升。JavaScript最基本的用,以及语法、浏览器对象{等东东在这里就不篏赘了。把主要幅攑֜如何实现JavaScript的面向对象编E方面?img alt="" src="http://www.cnblogs.com/Emoticons/msn/wink_smile.gif" /><br /><br />    1. 用JavaScript实现c?br />       JavaScritpt没有专门的机制实现类Q这里是借助它的函数允许嵌套的机制来实现cȝ。一个函数可以包含变量,又可以包含其它函敎ͼq样Q变量可以作为属性,内部的函数就可以作ؓ成员Ҏ了。因此外层函数本w就可以作ؓ一个类了。如下:<br /><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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> myClass()<br /><img id="Codehighlighter1_19_36_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_36_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_19_36_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_36_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_19_36_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_36_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_19_36_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_36_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_19_36_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_19_36_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">此处相当于构造函?/span><span style="COLOR: #008000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #000000">}</span></span></div>q里 myClass是一个类。其实可以把它看成类的构造函数。至于非构造函数的部分Q以后会详细描述?br /><br />    2. 如何获得一个类的实?br />      实现了类应该可以获得类的实例,JavaScript提供了一个方法可以获得对象实例。即 new操作W。其实JavaScript中,cd函数是同一个概念,当用new操作一个函数时p回一个对象。如下:<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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> myClass();</span></div><br />    3. 对象的成员的引用<br />       在JavaScript中引用一个类的属性或Ҏ的方法有以下三种?br />       1>  点号操作W?br />            q是一U最普遍的引用方式,׃累赘。即如下形式Q?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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">对象?属性名;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />对象?Ҏ?</span></div><br />      2>  Ҏ号引?br />           JavaScript中允许用Ҏ号引用对象的成员。如下:<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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">对象名[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">属性名</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">];<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />对象名[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Ҏ?/span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">];</span></div>            q里Ҏ号内是代表属性或Ҏ名的字符Ԍ不一定是字符串常量。也可以使用变量。这样就可以使用变量传递属性或Ҏ名。ؓ~程带来了方ѝ在某些情况下,代码中不能确定要调用那个属性或ҎӞ可以采用这U方式。否则,如果使用点号操作W,q需要用条件判断来调用属性或Ҏ?br />       另外Q用方括号引用的属性和Ҏ名还可以以数字开_或者出现空|而用点号引用的属性和Ҏ名则遵@标示W的规则。但一般不提倡用非标示W的命名Ҏ?br /> <br />      3>  使用eval函数<br />           如果不希望用变量传递变量或Ҏ名,又不想用条件判断,那么eval函数是一个好的选择。eval接收一个字W串cd的参敎ͼ然后这个字W串作ؓ代码在上下文中执行,q回执行的结果。这里正是利用了eval的这一功能。如下:<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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">alert(eval(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">对象?</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> element.value));</span></div>         <br />     4. 对对象属性,Ҏ的添加、修改和删除操作<br />         JavaScript中,在生成对象之后还可以为对象动态添加、修改和删除属性和ҎQ这与其它面向对象的语言是不同的?br />        1>  d属性和Ҏ<br />              先创Z个对象,I对象创建后没有M属性和ҎQ然而我们可以在代码中创建?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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Object();<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">d属?/span><span style="COLOR: #008000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">obj1.ID </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />obj1.Name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">johnson</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">dҎ</span><span style="COLOR: #008000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">obj1.showMessage </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function<span style="COLOR: #000000">()</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_104_161_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_104_161_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_104_161_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_104_161_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_104_161_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_104_161_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_104_161_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_104_161_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_104_161_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_104_161_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ID: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.ID </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, Name: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.Name);<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><br />      2>  修改属性与Ҏ<br />            与添加属性和ҎcMQ例如接着上面的例子:<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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 修改属?/span><span style="COLOR: #008000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">obj1.ID </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />obj1.Name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Amanda</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 修改Ҏ</span><span style="COLOR: #008000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">obj1.showMessage </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function<span style="COLOR: #000000">()</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_80_113_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_80_113_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_80_113_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_80_113_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_80_113_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_80_113_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_80_113_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_80_113_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_80_113_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_80_113_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ID: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.ID</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>     <br />      3>  删除属性与Ҏ<br />            直接要删除的属性或Ҏ赋gؓundefined卛_Q?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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">obj1.ID </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> 1;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />obj1.Name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> undefined;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />obj1.showMessage </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> undefined;</span></div><br />     5. 创徏无类型对象?br />        cM于C#3.0里的Anonymous TypesQJavaScript 也可以创建无cd的对象。Ş式如下:<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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img id="Codehighlighter1_11_13_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_11_13_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_11_13_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_11_13_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_11_13_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_11_13_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_11_13_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_11_13_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_11_13_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_11_13_Open_Text"><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj2 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_27_156_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_27_156_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_27_156_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_27_156_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_27_156_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_27_156_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_27_156_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_27_156_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_27_156_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_27_156_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    ID: </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    Name: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Johnson</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    showMessage: </span><span style="COLOR: #0000ff">function<span style="COLOR: #000000">()</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_91_154_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_91_154_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_91_154_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_91_154_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_91_154_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_91_154_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_91_154_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_91_154_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_91_154_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_91_154_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />        alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ID: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.ID </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Name: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.Name);<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}<br /></span></span></div>       q里定义了两个无cd的对象,obj1和obj2。其中obj1是一个空对象。obj2包括两个属性ID, Name和一个方法showMessage。每个属性和Ҏ用逗号分割。属?Ҏ)名和其g间用分号分割?br />       用这U方式创建属性方法时Q也可以用字W串定义属性方法的名字。如Q?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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj2 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_12_51_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_12_51_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_12_51_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_12_51_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_12_51_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_12_51_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_12_51_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_12_51_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_12_51_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_12_51_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ID</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> : </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Johnson</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div> <br />      6. prototype<br />          每个函数对象都具有一个子对象prototypeQ因为函C可以表示c,所以prototype表示一个类的成员的集合。当new 一个对象时Qprototype对象的成员都会被实例化成对象的成员。先看一个例子:<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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> myClass()<br /><img id="Codehighlighter1_19_22_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_22_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_19_22_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_22_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_19_22_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_22_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_19_22_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_22_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_19_22_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_19_22_Open_Text"><span style="COLOR: #000000">{ }</span></span><span style="COLOR: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />myClass.prototype.ID </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />myClass.prototype.Name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">johnson</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />myClass.prototype.showMessage </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">()<br /><img id="Codehighlighter1_129_184_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_129_184_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_129_184_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_129_184_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_129_184_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_129_184_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_129_184_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_129_184_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_129_184_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_129_184_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ID: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.ID </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Name: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.Name);<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> myClass();<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />obj1.showMessage();</span></div>      使用prototype对象创徏cL一个好处。如果将所有的成员直接写在cȝ声明中,如下Q?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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> myClass()<br /><img id="Codehighlighter1_19_191_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_191_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_19_191_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_191_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_19_191_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_191_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_19_191_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_191_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_19_191_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_19_191_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">d属?/span><span style="COLOR: #008000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.ID </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.Name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">johnson</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">dҎ</span><span style="COLOR: #008000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.showMessage </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function<span style="COLOR: #000000">()</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_124_189_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_124_189_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_124_189_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_124_189_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_124_189_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_124_189_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_124_189_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_124_189_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_124_189_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_124_189_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />        alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ID: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.ID </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, Name: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.Name);<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> myClass();<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj2 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> myClass();</span></div>        在上面的代码中,定义了一个类myClassQ在cM直接定义了两个属性和一个方法。然后实例化了两个对象,q里的两个属性和一个方法,每创ZơmyClass对象都会被创Zơ,费了内存空间。而用prototype以后可以解册个问题,每new一个函数时Q其prototype对象的成员都会自动赋l这个对象,当new多个对象时不会重复创建?br />        ׃prototype的初始化发生在函C执行之前Q用以下代码可以证明Q?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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> myClass()<br /><img id="Codehighlighter1_19_107_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_107_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_19_107_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_107_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_19_107_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_107_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_19_107_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_107_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_19_107_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_19_107_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">此处相当于构造函?/span><span style="COLOR: #008000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.ID </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.Name1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.Name;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.showMessage();<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />myClass.prototype.Name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">johnson</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />myClass.prototype.showMessage </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">()<br /><img id="Codehighlighter1_187_244_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_187_244_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_187_244_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_187_244_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_187_244_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_187_244_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_187_244_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_187_244_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_187_244_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_187_244_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ID: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.ID </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, Name: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.Name);<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> myClass();<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></div>        执行以上代码可以发现当newq个cd的对象时Q即弹出了对话框?br />        最后只得一提的是,prototype有一个方法,在面向对象的设计中用得到。即Qconstructor属性,是对构造函数的调用Q这里的构造函数即上文提到的类的声明里的代码。如Q?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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> myClass()<br /><img id="Codehighlighter1_19_75_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_75_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_19_75_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_75_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_19_75_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_75_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_19_75_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_75_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_19_75_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_19_75_Open_Text"><span style="COLOR: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">此处相当于构造函?/span><span style="COLOR: #008000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    alert(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">this is in constructor</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />myClass.prototype.constructor();<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> obj1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> myClass();</span></div>   执行以上代码你会发现对话框弹Z两次。由此可见,prototype可专门用于设计类的成员,实际上在JavaScript面向对象的设计中Q很多时候都会用到prototype?br /><img src ="http://www.aygfsteel.com/kyleYang/aggbug/305173.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kyleYang/" target="_blank">飞熊</a> 2009-12-08 15:39 <a href="http://www.aygfsteel.com/kyleYang/archive/2009/12/08/305173.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS日期比较--l?/title><link>http://www.aygfsteel.com/kyleYang/archive/2009/10/25/299638.html</link><dc:creator>飞熊</dc:creator><author>飞熊</author><pubDate>Sat, 24 Oct 2009 17:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/kyleYang/archive/2009/10/25/299638.html</guid><wfw:comment>http://www.aygfsteel.com/kyleYang/comments/299638.html</wfw:comment><comments>http://www.aygfsteel.com/kyleYang/archive/2009/10/25/299638.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kyleYang/comments/commentRss/299638.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kyleYang/services/trackbacks/299638.html</trackback:ping><description><![CDATA[function ValidtorTime()<br />     {      <br />         var   d1   = new  Date(document.getElementById('txbFromDate').value<font color="#ff0000">.replace(/\-/g, "\/"));</font><br />         var   d2   = new  Date(document.getElementById('txbToDate').value<font color="#ff0000">.replace(/\-/g, "\/"));</font>        <br />         if(d1>d2)<br />         {<br />             alert("l束旉必须在开始时间之?");<br />             return false;<br />         }    <br />       return true;  <br />     }<br /> <img src ="http://www.aygfsteel.com/kyleYang/aggbug/299638.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kyleYang/" target="_blank">飞熊</a> 2009-10-25 01:44 <a href="http://www.aygfsteel.com/kyleYang/archive/2009/10/25/299638.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS日期比较http://www.aygfsteel.com/kyleYang/archive/2009/10/25/299632.html飞熊飞熊Sat, 24 Oct 2009 16:11:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2009/10/25/299632.htmlhttp://www.aygfsteel.com/kyleYang/comments/299632.htmlhttp://www.aygfsteel.com/kyleYang/archive/2009/10/25/299632.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/299632.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/299632.html      var currentDate = new Date();
     if(currentDate.getYear() > inputDate.getYear())
       return -1;
     else if(currentDate.getYear() < inputDate.getYear())
       return 1;
    
     if(currentDate.getMonth() > inputDate.getMonth())
       return -1;
     else if(currentDate.getMonth() < inputDate.getMonth())
       return 1;
    
     if(currentDate.getDate() > inputDate.getDate())
       return -1;
     else if(currentDate.getDate() < inputDate.getDate())
       return 1;
    
     return 0;
    }
  
    function Compare() {
    var sday = document.getElementById("day").value.split('-');
     var inputDate = new Date(sday[0],sday[1]-1,sday[2]);
     if(isNaN(inputDate)){
       alert("不是日期");
    return;
     }
     var result = CompareDate(inputDate);
     if(result < 0)
       alert(inputDate.toLocaleString() + "于当前日期");
     else if(result > 0)
       alert(inputDate.toLocaleString() + "大于当前日期");
     else
       alert(inputDate.toLocaleString() + "{于当前日期");
    }

飞熊 2009-10-25 00:11 发表评论
]]>
վ֩ģ壺 Ͱ| | | | Ϫ| | Ǩ| ï| ¹| Ͻ| | Ѷ | | ַ| ¬| | ϳ| | Զ| | | | ͼ| | | ƽ| Ϊ| | | | | | | ˳| | Զ| | | | ɽ| ɽ|