﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-zkjbeyond-随笔分类-javascript语言</title><link>http://www.blogjava.net/zkjbeyond/category/10156.html</link><description>原创专栏 开源学习</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 20:40:08 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 20:40:08 GMT</pubDate><ttl>60</ttl><item><title>ajax blog 搬家</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/08/21/64760.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Mon, 21 Aug 2006 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/08/21/64760.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/64760.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/08/21/64760.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/64760.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/64760.html</trackback:ping><description><![CDATA[BlogJava做为java的专业blog，偶在这老写javascript  ajax的东西，有些不合适。<br /><br />朋友给了个blog,专门放ajax的文章吧！以后这专门写关于java的东西吧。<br /><a href="http://zkj.wisekernel.net">http://zkj.wisekernel.net</a><br /><br />谢谢支持。<img src ="http://www.blogjava.net/zkjbeyond/aggbug/64760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-08-21 12:52 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/08/21/64760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>再说说prototype.js的事件注册</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/06/12/52083.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Sun, 11 Jun 2006 18:12:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/06/12/52083.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/52083.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/06/12/52083.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/52083.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/52083.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 框架实现人员必看<br>关于prototype.js中 bind函数的问题  和  拖拉层代码的建议<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/zkjbeyond/archive/2006/06/12/52083.html'>阅读全文</a><img src ="http://www.blogjava.net/zkjbeyond/aggbug/52083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-06-12 02:12 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/06/12/52083.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>闭包（续）</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/05/23/47725.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Tue, 23 May 2006 15:51:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/05/23/47725.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/47725.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/05/23/47725.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/47725.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/47725.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 书接上回，继续闭包。<br><br>如果你懂javascript，而你不了解javascript的闭包。<br>那你将错过javascript最强大特性之一（闭包）。&nbsp;&nbsp;<a href='http://www.blogjava.net/zkjbeyond/archive/2006/05/23/47725.html'>阅读全文</a><img src ="http://www.blogjava.net/zkjbeyond/aggbug/47725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-05-23 23:51 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/05/23/47725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript语言中的闭包</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/05/19/47025.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Fri, 19 May 2006 03:46:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/05/19/47025.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/47025.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/05/19/47025.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/47025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/47025.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 2006.5.20下午16.21更新。<br><br>groove,python,perl这些高级脚本语言都有闭包概念。不懂这些语言的可能没机会理解闭包了。<br>幸运的是大家都熟悉javascript,那么从javascript开始闭包认识吧。<br>感觉闭包是高级的，但也是晦涩的。<br><br>本文译自<br>http://jibbering.com/faq/faq_notes/closures.html<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/zkjbeyond/archive/2006/05/19/47025.html'>阅读全文</a><img src ="http://www.blogjava.net/zkjbeyond/aggbug/47025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-05-19 11:46 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/05/19/47025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之对象篇(7)网页中的javascript对象</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/04/23/42666.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Sun, 23 Apr 2006 07:36:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/04/23/42666.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/42666.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/04/23/42666.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/42666.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/42666.html</trackback:ping><description><![CDATA[
		<p>
				<strong>1、废话<br /></strong>   这部分将要描述浏览器为我们创建的对象。就是大家熟悉的window,document</p>
		<p>等。一般书上都叫对象层次和文档对象模型。用dom标准来说，一般浏览器都实现</p>
		<p>了0级DOM，关于DOM标准我感觉知道0级就可以了。对于DOM标准W3C早已定义了1级</p>
		<p>，2级，三级也在标准化，问题是各个浏览器不完全实现，尤其是IE的事件模型，</p>
		<p>完全不和DOM一致。（不过prototype.js已经做了很好的封装）<br />    我这里不会讲dom接口，更不会讲各个浏览器的如何实现这些接口及区别。（</p>
		<p>我也没这能力）。而是要猜测一下浏览器是怎么用javascript定义这些接口或类</p>
		<p>的。（注意是猜测，个人理解）</p>
		<p>
				<strong>2、引子</strong>
		</p>
		<p>
				<font style="BACKGROUND-COLOR: #808080">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />&lt;!--<br />alert(document);<br />alert(typeof(document));<br />//alert(Document);//出错<br />function desc(obj){<br />  var ret='';<br />  for(var key in obj){<br />    ret+=key+':'+obj[key]+'&lt;/br&gt;';<br />  }<br />  return ret;<br />}<br />document.writeln(desc(document));<br />//--&gt;<br />&lt;/SCRIPT&gt;</font>
		</p>
		<p>以上简单的javascript代码，不知大家提出过疑问没有。<br />首先，document是个javascript对象，谁创建了它。；document的类是什么</p>
		<p>(function Document(){....} 可能是new Document()创建了它)；document有些</p>
		<p>什么属性或方法。这些对象与html关系是什么。这些对象与dom标准有什么关系。</p>
		<p>接下来将试着回答这些问题。我会侧重讲述我的理解思路，而不是具体哪个方法</p>
		<p>，接口。</p>
		<p>
				<strong>3、一个简单的例子的深入理解</strong>
		</p>
		<p>
				<font style="BACKGROUND-COLOR: #808080">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />&lt;!--<br />    alert(document);//存在<br />    alert(this.document==window.document);//true<br />//--&gt;<br />&lt;/SCRIPT&gt;<br />&lt;HTML&gt;<br />&lt;HEAD&gt;<br />&lt;TITLE&gt; New Document &lt;/TITLE&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />    alert(document.getElementById('xm'));//null<br />&lt;/SCRIPT&gt;<br />&lt;/HEAD&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />    alert(document.getElementById('xm'));//null<br />&lt;/SCRIPT&gt;<br />&lt;BODY&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />    alert(document.getElementById('xm'));//null<br />&lt;/SCRIPT&gt;<br />&lt;input type="text" id="xm"&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />    alert(document.getElementById('xm'));//存在<br />&lt;/SCRIPT&gt;<br />&lt;/BODY&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />    alert(document.getElementById('xm'));//存在<br />&lt;/SCRIPT&gt;<br />&lt;/HTML&gt;</font>
		</p>
		<p>上面代码说明几个问题：<br /><strong>a、</strong>window\this就是我在变量篇里面提到过的窗体的全局对象，document是它的</p>
		<p>一个属性，也叫全局属性。<br /><strong>b、</strong>window,document在html最前面已经存在了。我们可以随处使用document对象</p>
		<p>。<br /><strong>c、</strong>对于输入框按钮这类html标记的javascript对象只有在解释过以后才能访问到</p>
		<p>。当然我们编码用到这些对象时，都在body.onload或鼠标触发，一般不会出错。<br /><strong>d、</strong>例子中的document.getElementById('xm')javascript对象和我们自己创建的</p>
		<p>javascript对象有什么区别呢？从应用角度看没有区别，只是自己定义的对象由</p>
		<p>自己new来初始化，而document.getElementById('xm')有浏览器为我们初始化对</p>
		<p>象，我们直接用方法得到句柄就可以了（有多种方法）。<br /><strong>e、</strong>我们怎么知道这些对象的用法呢？查看w3c DOM参考吗？我认为不用。</p>
		<p>
				<strong>4、浏览器为我们创建的对象与我们自己定义的对象的区别。</strong>
		</p>
		<p>
				<font style="BACKGROUND-COLOR: #808080">&lt;input type="text" id="xm" value="aaa"&gt;<br />&lt;INPUT TYPE="button" value='click me' onclick="alert</font>
		</p>
		<p>
				<font style="BACKGROUND-COLOR: #808080">(document.getElementById('xm').value);<br />alert(document.getElementById('myxm').value);"&gt;<br />&lt;br&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />&lt;!--<br />function desc(obj){<br />  var ret='';<br />  for(var key in obj){<br />    ret+=key+':'+obj[key]+'&lt;/br&gt;';<br />  }<br />  return ret;<br />}<br />function MyText(id,value){<br />    this.id=id;<br /> this.outHtml='&lt;input type=text id='+id+' value='+value+'&gt;';<br /> this.toString=function(){<br />        return this.outHtml;<br /> }<br /> //...<br /> //...<br /> //...<br />}<br />//document.writeln(desc(document.getElementById('xm')));<br />var myText=new MyText('myxm','zkj');<br />document.writeln(myText);<br />//--&gt;<br />&lt;/SCRIPT&gt;</font>
		</p>
		<p>希望你仔细的看看上面代码的执行结果。可能你会得到更震撼的想法来。暂时我</p>
		<p>有以下几个感想：<br /><strong>a、</strong>我们自己也可以写一个界面控件，如果把属性建立全的话，完全可以复原浏览</p>
		<p>器的内建类。<br /><strong>b、</strong>反过来，对于浏览器为我们创建的对象，我们可以当成自己的对象一样使用。</p>
		<p>看看prototype.js中，使用了内建对象的方法。</p>
		<p>
				<font style="BACKGROUND-COLOR: #808080">escapeHTML: function() {<br />    var div = document.createElement('div');<br />    var text = document.createTextNode(this);<br />    div.appendChild(text);<br />    return div.innerHTML;<br />  },<br />  unescapeHTML: function() {<br />    var div = document.createElement('div');<br />    div.innerHTML = this.stripTags();<br />    return div.childNodes[0] ? div.childNodes[0].nodeValue : '';<br />  },<br /></font>
				<strong>c、</strong>大家可以打开描述注释，看看&lt;input &gt;到底包含哪些属性和方法。注意</p>
		<p>outerHTML属性的值是什么,在网页上表示什么。可以看出javascript对象的</p>
		<p>outerHTML属性就是html(xhtml)规范中的标签。这样给了我们写javascriptUI控</p>
		<p>件的新思路，一个控件就是一个javascript对象（其实很多人都这样做了，但好</p>
		<p>象都是innerHtml等等）。可以象asp.net或jsf那样编写组合控件。<br />大家可以看一下ActiveWidgets代码（与我的思路有些差别），我认为这种基于</p>
		<p>html标签的UI控件无论性能、开发人员使用难度上都不错。 <br />对于dojo的widget这种做UI做法我个人不很赞同，完全用div，图片实现了一便</p>
		<p>html的UI标签。性能不好，开发人员上手不容易，美工更不能修改，另外图片都</p>
		<p>是定死的，界面也比较单调，也不好修改。</p>
		<p>对于自己实现javascript控件，我认为在htmlUI基础上就可以了，毕竟自己实现</p>
		<p>存在的UI难度不小。把html的标准UI组合成新的控件。例如，我们可以很容易的</p>
		<p>实现一个包括  （登陆 密码 验证码 确认）  的组合javascript控件</p>
		<p>
				<br />
				<strong>d、</strong>dom标准与浏览器对象<br />打开document.writeln(desc(document.getElementById('xm')));，你可以看到&lt; </p>
		<p>input type="text"&gt;的所有属性。这些属性 ”dom标准“，之所以加引号，DOM标</p>
		<p>准我们有很多误解，认为DOM标准是个什么高不可及、不可违抗的、复杂的东西。<br />首先：我们接触了静态HTML,xml，有了DOM对象模型（熟悉java的都知道java的实</p>
		<p>现），但javascript语言的特点使不能象java,c++那样来实现DOM对象模型。例如 </p>
		<p>input 继承了 HTMLElement，HTMLElement定义的一堆属性。按照dom标准,所有浏</p>
		<p>览器实现 input javascript对象时都必须把这些属性加上，这就叫符合标准。其</p>
		<p>实说白了：DOM标准就是浏览器为我们实现的javascript代码的总和。（可以浏览</p>
		<p>器厂商不完全实现）<br />看protorype.js的代码<br />为了支持多了浏览器，定义下面代码。说明有的浏览器网页全局变量里有Element</p>
		<p>，Event，有些浏览器没给我们定义。所以只能这样了。</p>
		<p>
				<font style="BACKGROUND-COLOR: #808080">if (!window.Element) {<br />  var Element = new Object();<br />}<br />if (!window.Event) {<br />  var Event = new Object();<br />}</font>
		</p>
		<p>还有用AJAX技术时<br />'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'， 其实很简</p>
		<p>单，就是浏览器中有没有这些javascript实现了。所有大家在DWR框架中用iframe</p>
		<p>实现了一个javascript  XMLHTTP类。</p>
		<p>
				<strong>e、</strong>与xhtml标准的矛盾<br />在xhtml中，&lt;input type="button"&gt; 双引号是必须的，但outerHTML属性中却没</p>
		<p>双引号。还没想明白。</p>
		<p>
				<strong>5、浏览器为我们创建了几类对象</strong>
				<br />a、全局对象window或this。其实javascript的全局变量、全局方法（如</p>
		<p>Math,setTimeout()）都可以由window对象访问。另外浏览器的特殊函数或属性。</p>
		<p>（如window.status,window.alert()）<br />b、document对象。包括图片，applet,form等属性，可能我们用的最多。也是访</p>
		<p>问我们可见的元素的入口（document.getElementById）,也提供了动态创建html</p>
		<p>标签的方法。如var t=new Text("test");没有这样方法，只能 var </p>
		<p>t=document.creatTextNode("test");都由document提供的工厂方法来创建。<br />c、页面中的html标签，当解释执行过，浏览器会为你初始化对象，放到document</p>
		<p>对象中去。</p>
		<p>
				<strong>6、对DOM标准的认识</strong>
				<br />DOM标准定义了接口，没有定义类。浏览器为我们实现了这些接口，实现这些接口</p>
		<p>的类我们也看不见。所以这里接口的含义和java中接口的含义不同。<br />例如我们常用的document对象<br />DOM标准中定义了个Document接口，实现HTMLElemnt接口。<br />Document接口和HTMLElemnt接口在DOM标准中定义了很多属性和方法。<br />注意我们使用的document对象是浏览器为我们创建的javascript对象，到底</p>
		<p>document对象有哪些属性和方法是有浏览器决定的，而不是由DOM标准决定的。<br />在这里javascript世界里没有继承概念，所以DOM标准定义的接口，对于我们开发</p>
		<p>人员来说只能当成一个参考手册，象javadoc。</p>
		<p>
				<strong>7、如何写出跨浏览器的javascript代码</strong>
				<br />   这难度大了点.但说穿了，只要我们用javascript代码把浏览器没符合DOM标准</p>
		<p>的代码补全就好了。但DOM标准之大不是一般人能全部搞清楚的，浏览器厂商也使</p>
		<p>坏，让这个工作更难了。   现在好象有个误区，人们写javascript都喜欢按照</p>
		<p>DOM标准来写。如果我们按照各个浏览器实现DOM标准的交集写代码的话，可能会</p>
		<p>更好点。</p>
		<p> </p>
		<p>
				<br /> </p>
<img src ="http://www.blogjava.net/zkjbeyond/aggbug/42666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-04-23 15:36 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/04/23/42666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之对象篇(5)继承</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41532.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Mon, 17 Apr 2006 15:19:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41532.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/41532.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/41532.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/41532.html</trackback:ping><description><![CDATA[
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;!--</span>
				<span style="COLOR: #000000"> <br /><img id="Codehighlighter1_93_207_Open_Image" onclick="this.style.display='none'; Codehighlighter1_93_207_Open_Text.style.display='none'; Codehighlighter1_93_207_Closed_Image.style.display='inline'; Codehighlighter1_93_207_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_93_207_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_93_207_Closed_Text.style.display='none'; Codehighlighter1_93_207_Open_Image.style.display='inline'; Codehighlighter1_93_207_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> Object.extend  </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">   function (destination, source)   </span>
				<span id="Codehighlighter1_93_207_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_93_207_Open_Text">
						<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_128_180_Open_Image" onclick="this.style.display='none'; Codehighlighter1_128_180_Open_Text.style.display='none'; Codehighlighter1_128_180_Closed_Image.style.display='inline'; Codehighlighter1_128_180_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_128_180_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_128_180_Closed_Text.style.display='none'; Codehighlighter1_128_180_Open_Image.style.display='inline'; Codehighlighter1_128_180_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span>
						<span style="COLOR: #0000ff">for</span>
						<span style="COLOR: #000000">  (property  in  source)   </span>
						<span id="Codehighlighter1_128_180_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 src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_128_180_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    destination[property]  </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">  source[property];<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span>
						</span>
						<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000">  destination;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> <br /><img id="Codehighlighter1_231_258_Open_Image" onclick="this.style.display='none'; Codehighlighter1_231_258_Open_Text.style.display='none'; Codehighlighter1_231_258_Closed_Image.style.display='inline'; Codehighlighter1_231_258_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_231_258_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_231_258_Closed_Text.style.display='none'; Codehighlighter1_231_258_Open_Image.style.display='inline'; Codehighlighter1_231_258_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  function  Man()  </span>
				<span id="Codehighlighter1_231_258_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_231_258_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/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">zkj</span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Man.prototype.type </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">;<br /><img id="Codehighlighter1_325_353_Open_Image" onclick="this.style.display='none'; Codehighlighter1_325_353_Open_Text.style.display='none'; Codehighlighter1_325_353_Closed_Image.style.display='inline'; Codehighlighter1_325_353_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_325_353_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_325_353_Closed_Text.style.display='none'; Codehighlighter1_325_353_Open_Image.style.display='inline'; Codehighlighter1_325_353_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Man.prototype.getType </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> function ()  </span>
				<span id="Codehighlighter1_325_353_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_325_353_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000">   </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000"> .type;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000"> <br /><img id="Codehighlighter1_377_378_Open_Image" onclick="this.style.display='none'; Codehighlighter1_377_378_Open_Text.style.display='none'; Codehighlighter1_377_378_Closed_Image.style.display='inline'; Codehighlighter1_377_378_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_377_378_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_377_378_Closed_Text.style.display='none'; Codehighlighter1_377_378_Open_Image.style.display='inline'; Codehighlighter1_377_378_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  function  Woman()  </span>
				<span id="Codehighlighter1_377_378_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_377_378_Open_Text">
						<span style="COLOR: #000000">{}</span>
				</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Object.extend(Woman.prototype,Man.prototype);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  man </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000">  Man();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  woman </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000">  Woman();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(man.getType());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(man.name);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(woman.getType());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(woman.name);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> --&gt; </span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> </span>
		</div>我只能说javascript的继承是模拟实现的。和java,c++中是不同的。是依靠prototype实现的。<br />我个人从来不用javascript的“继承”，始终认为javascript实现的继承不是真正的继承。可能是受java”毒害“够深。<br />在javascript中，我把继承分为两类： 类继承，对象继承。<br /><strong>（1）、prototype.js中的继承</strong><br />prototype.js中用如下代码实现继承。我认为只是个属性拷贝过程。<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%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_52_166_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_166_Open_Text.style.display='none'; Codehighlighter1_52_166_Closed_Image.style.display='inline'; Codehighlighter1_52_166_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_52_166_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_166_Closed_Text.style.display='none'; Codehighlighter1_52_166_Open_Image.style.display='inline'; Codehighlighter1_52_166_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #000000">Object.extend  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">   function (destination, source)   </span><span id="Codehighlighter1_52_166_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_52_166_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_87_139_Open_Image" onclick="this.style.display='none'; Codehighlighter1_87_139_Open_Text.style.display='none'; Codehighlighter1_87_139_Closed_Image.style.display='inline'; Codehighlighter1_87_139_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_87_139_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_87_139_Closed_Text.style.display='none'; Codehighlighter1_87_139_Open_Image.style.display='inline'; Codehighlighter1_87_139_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">  (property  in  source)   </span><span id="Codehighlighter1_87_139_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_87_139_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    destination[property]  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  source[property];<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  destination;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> </span></div><br />//Object.prototype.extend 感觉这句话没必要，太模仿java了，想让对象实例直接继承。<br />    <strong>a、prototype.js中的类继承<br /></strong><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">prototype.js  </span><span style="COLOR: #000000">1.3</span><span style="COLOR: #000000"> . </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_54_552_Open_Image" onclick="this.style.display='none'; Codehighlighter1_54_552_Open_Text.style.display='none'; Codehighlighter1_54_552_Closed_Image.style.display='inline'; Codehighlighter1_54_552_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_54_552_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_54_552_Closed_Text.style.display='none'; Codehighlighter1_54_552_Open_Image.style.display='inline'; Codehighlighter1_54_552_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />     String.prototype.extend(  </span><span id="Codehighlighter1_54_552_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_54_552_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_88_154_Open_Image" onclick="this.style.display='none'; Codehighlighter1_88_154_Open_Text.style.display='none'; Codehighlighter1_88_154_Closed_Image.style.display='inline'; Codehighlighter1_88_154_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_88_154_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_88_154_Closed_Text.style.display='none'; Codehighlighter1_88_154_Open_Image.style.display='inline'; Codehighlighter1_88_154_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />      stripTags:  function ()   </span><span id="Codehighlighter1_88_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_88_154_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000"> .replace( </span><span style="COLOR: #000000">/&lt;</span><span style="COLOR: #000000"> \ </span><span style="COLOR: #000000">/?</span><span style="COLOR: #000000"> [ </span><span style="COLOR: #000000">^&gt;</span><span style="COLOR: #000000"> ] </span><span style="COLOR: #000000">+&gt;/</span><span style="COLOR: #000000"> gi, </span><span style="COLOR: #000000">''</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"> ,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_190_360_Open_Image" onclick="this.style.display='none'; Codehighlighter1_190_360_Open_Text.style.display='none'; Codehighlighter1_190_360_Closed_Image.style.display='inline'; Codehighlighter1_190_360_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_190_360_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_190_360_Closed_Text.style.display='none'; Codehighlighter1_190_360_Open_Image.style.display='inline'; Codehighlighter1_190_360_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    escapeHTML:  function ()   </span><span id="Codehighlighter1_190_360_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_190_360_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       var  div  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  document.createElement(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       var  text  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  document.createTextNode( </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000"> );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      div.appendChild(text);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  div.innerHTML;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"> ,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_398_545_Open_Image" onclick="this.style.display='none'; Codehighlighter1_398_545_Open_Text.style.display='none'; Codehighlighter1_398_545_Closed_Image.style.display='inline'; Codehighlighter1_398_545_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_398_545_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_398_545_Closed_Text.style.display='none'; Codehighlighter1_398_545_Open_Image.style.display='inline'; Codehighlighter1_398_545_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    unescapeHTML:  function ()   </span><span id="Codehighlighter1_398_545_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_398_545_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       var  div  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  document.createElement(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      div.innerHTML  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000"> .stripTags();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  div.childNodes[ </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"> ].nodeValue;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"> );</span></div><p>    我把这类型的继承叫做类继承，直接把你自己写的对象属性拷贝到原型对象中去。</p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">SCRIPT LANGUAGE </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">JavaScript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_93_207_Open_Image" onclick="this.style.display='none'; Codehighlighter1_93_207_Open_Text.style.display='none'; Codehighlighter1_93_207_Closed_Image.style.display='inline'; Codehighlighter1_93_207_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_93_207_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_93_207_Closed_Text.style.display='none'; Codehighlighter1_93_207_Open_Image.style.display='inline'; Codehighlighter1_93_207_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> Object.extend  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">   function (destination, source)   </span><span id="Codehighlighter1_93_207_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_93_207_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_128_180_Open_Image" onclick="this.style.display='none'; Codehighlighter1_128_180_Open_Text.style.display='none'; Codehighlighter1_128_180_Closed_Image.style.display='inline'; Codehighlighter1_128_180_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_128_180_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_128_180_Closed_Text.style.display='none'; Codehighlighter1_128_180_Open_Image.style.display='inline'; Codehighlighter1_128_180_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">  (property  in  source)   </span><span id="Codehighlighter1_128_180_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_128_180_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    destination[property]  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  source[property];<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  destination;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> <br /><img id="Codehighlighter1_231_258_Open_Image" onclick="this.style.display='none'; Codehighlighter1_231_258_Open_Text.style.display='none'; Codehighlighter1_231_258_Closed_Image.style.display='inline'; Codehighlighter1_231_258_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_231_258_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_231_258_Closed_Text.style.display='none'; Codehighlighter1_231_258_Open_Image.style.display='inline'; Codehighlighter1_231_258_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  function  Man()  </span><span id="Codehighlighter1_231_258_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_231_258_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/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">zkj</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Man.prototype.type </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">;<br /><img id="Codehighlighter1_325_353_Open_Image" onclick="this.style.display='none'; Codehighlighter1_325_353_Open_Text.style.display='none'; Codehighlighter1_325_353_Closed_Image.style.display='inline'; Codehighlighter1_325_353_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_325_353_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_325_353_Closed_Text.style.display='none'; Codehighlighter1_325_353_Open_Image.style.display='inline'; Codehighlighter1_325_353_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Man.prototype.getType </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> function ()  </span><span id="Codehighlighter1_325_353_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_325_353_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000"> .type;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_377_378_Open_Image" onclick="this.style.display='none'; Codehighlighter1_377_378_Open_Text.style.display='none'; Codehighlighter1_377_378_Closed_Image.style.display='inline'; Codehighlighter1_377_378_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_377_378_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_377_378_Closed_Text.style.display='none'; Codehighlighter1_377_378_Open_Image.style.display='inline'; Codehighlighter1_377_378_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  function  Woman()  </span><span id="Codehighlighter1_377_378_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_377_378_Open_Text"><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Object.extend(Woman.prototype,Man.prototype);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  man </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Man();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  woman </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Woman();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(man.getType());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(man.name);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(woman.getType());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(woman.name);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> --&gt; </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">SCRIPT</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> </span></div><p>看了以上代码，可能你会明白。直接拷贝类的原型对象确实可以实现某种概念上的继承。<br />但要注意：在继承体系中，Man的原型对象属性方法最好不要用Man的实例属性（name），因为可能Woman中并没有定义实例属性name;也最好不要用Man)原型对象属性字段（type）,虽然type也被拷贝过来了，但值还是”男人“。<br />虽然有解决办法，但javascript没有很好的语法检查工具，你用prototype.js的类继承时小心处理。</p><p><strong>b、prototype.js中的对象继承<br /></strong><br /></p><p>prototype.js 1.3.1<br />this.options = {<br />      method:       'post',<br />      asynchronous: true,<br />      parameters:   ''<br />    }.extend(options || {});</p><p>这个应用比较简单，典型的对象之间属性拷贝覆盖。<br />总结：关于prototype.js中继承的实现，我们当成javascript对象的属性拷贝可能在应用中更好理解。建议大家仔细读读prototype.js代码可能体会更深。模仿prototype.js中extend的应用。感觉var Insertion = new Object(); 的实现比较经典。</p><p><strong>（2）、dojo-0.2.0-ajax中的继承</strong></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_52_418_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_418_Open_Text.style.display='none'; Codehighlighter1_52_418_Closed_Image.style.display='inline'; Codehighlighter1_52_418_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_52_418_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_418_Closed_Text.style.display='none'; Codehighlighter1_52_418_Open_Image.style.display='inline'; Codehighlighter1_52_418_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #000000">dojo.inherits  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">   function (subclass, superclass)  </span><span id="Codehighlighter1_52_418_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_52_418_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_100_165_Open_Image" onclick="this.style.display='none'; Codehighlighter1_100_165_Open_Text.style.display='none'; Codehighlighter1_100_165_Closed_Image.style.display='inline'; Codehighlighter1_100_165_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_100_165_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_100_165_Closed_Text.style.display='none'; Codehighlighter1_100_165_Open_Image.style.display='inline'; Codehighlighter1_100_165_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> ( typeof  superclass  </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">  </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"> function </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">)  </span><span id="Codehighlighter1_100_165_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_100_165_Open_Text"><span style="COLOR: #000000">{ <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  dojo.raise( </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> superclass:  </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> superclass </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">  borken </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> subclass.prototype  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  superclass();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> subclass.prototype.constructor  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  subclass;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> subclass.superclass  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  superclass.prototype;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">  DEPRICATED: super is a reserved word, use 'superclass' </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">  subclass[</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">super</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">]  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  superclass.prototype;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />     }</span></span><span style="COLOR: #000000"> </span></div><p>dojo的继承实现比较正统，也是《javascript权威指南》中的实现方法。注意最后一句代码可以实现子类访问父类原型对象的方法。<br /><br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">SCRIPT LANGUAGE </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">JavaScript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> <br /><img id="Codehighlighter1_62_89_Open_Image" onclick="this.style.display='none'; Codehighlighter1_62_89_Open_Text.style.display='none'; Codehighlighter1_62_89_Closed_Image.style.display='inline'; Codehighlighter1_62_89_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_62_89_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_62_89_Closed_Text.style.display='none'; Codehighlighter1_62_89_Open_Image.style.display='inline'; Codehighlighter1_62_89_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  function  Man()  </span><span id="Codehighlighter1_62_89_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_62_89_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/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">zkj</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Man.prototype.type </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">;<br /><img id="Codehighlighter1_156_184_Open_Image" onclick="this.style.display='none'; Codehighlighter1_156_184_Open_Text.style.display='none'; Codehighlighter1_156_184_Closed_Image.style.display='inline'; Codehighlighter1_156_184_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_156_184_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_156_184_Closed_Text.style.display='none'; Codehighlighter1_156_184_Open_Image.style.display='inline'; Codehighlighter1_156_184_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Man.prototype.getType </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> function ()  </span><span id="Codehighlighter1_156_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_156_184_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000"> .type;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_208_209_Open_Image" onclick="this.style.display='none'; Codehighlighter1_208_209_Open_Text.style.display='none'; Codehighlighter1_208_209_Closed_Image.style.display='inline'; Codehighlighter1_208_209_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_208_209_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_208_209_Closed_Text.style.display='none'; Codehighlighter1_208_209_Open_Image.style.display='inline'; Codehighlighter1_208_209_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  function  Woman()  </span><span id="Codehighlighter1_208_209_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_208_209_Open_Text"><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Woman.prototype  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Man();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Woman.prototype.constructor  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  Woman;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Woman.superclass  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  Man.prototype;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">  DEPRICATED: super is a reserved word, use 'superclass' </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"> Woman[</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">super</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">]  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  Man.prototype;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Woman.prototype.type </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">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  man </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Man();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  woman </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Woman();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(man.getType());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(man.name);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(woman.getType());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Woman.superclass.getType());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(woman.name);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> --&gt; </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">SCRIPT</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> </span></div><p>看看代码，感觉混乱。<br />dojo一直没时间仔细读读代码。这部分详细讨论待续。<br /><strong>(3)、总结</strong><br />关于javascript的继承实现，建议一般不要使用，感觉很乱，代码可读性较差。一般也没有使用必要。详细在《9、javascript对象使用指南》中讨论。<br /></p><img src ="http://www.blogjava.net/zkjbeyond/aggbug/41532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-04-17 23:19 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之对象篇(4)构造函数、原型对象 </title><link>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41531.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Mon, 17 Apr 2006 15:12:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41531.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/41531.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41531.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/41531.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/41531.html</trackback:ping><description><![CDATA[原型对象prototype是Object或与之同等级的对象如（function，Number)的一个属性，protorype是个对象。typeof的值是object。
<p>如果看了上一小节的最后一个例子，对自定义的“类”应该比较熟悉了。<br />在javascript中，可以说没有方法，因为函数和字符串一样也是种数据类型，但类中的函数可以用this关键字。下面我说的类的属性可以是方法，也可以指字段。<br />在一个自定义“类”中有中有几个地方可以定义属性。<br />  <strong> a、</strong>函数名中直接定义。  如Person.name。在这定义相当于类名的属性。静态的，访问的时候必须用Person.name来访问，不能用new Person().name访问，也访问不到。<br /> <strong>  b、</strong>构造函数的this.中。当你用new function()时，这些属性就是你所持对象的属性。用new Person().属性  来访问。<br /> <strong>  c、</strong>构建好对象以后，给对象增加属性。和构造函数中的属性使用类似。<br /> <strong>  d、</strong>函数名的prototype中<br />   <strong>e、</strong>父类或Object 的prototype中。</p><p><strong>(1)对象属性优先级</strong><br />通过运行以下代码，我们访问对象属性优先级如下：c&gt;b&gt;d&gt;e<br />c种属性必须在定义以后访问才有效。a种属性实例访问不到。<br />javascrpt语言预定义的属性不能用for in 得到。如toString<br /><br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">SCRIPT LANGUAGE </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">JavaScript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_82_83_Open_Image" onclick="this.style.display='none'; Codehighlighter1_82_83_Open_Text.style.display='none'; Codehighlighter1_82_83_Closed_Image.style.display='inline'; Codehighlighter1_82_83_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_82_83_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_82_83_Closed_Text.style.display='none'; Codehighlighter1_82_83_Open_Image.style.display='inline'; Codehighlighter1_82_83_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> Object.prototype.toString </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> function ()  </span><span id="Codehighlighter1_82_83_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_82_83_Open_Text"><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Object.prototype.name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> Object </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Object.prototype.porotype_name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> oObject </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Object.prototype.parent_name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> pObject </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Person.prototype.name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> Person </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Person.prototype.porotype_name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> oPerson </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_322_354_Open_Image" onclick="this.style.display='none'; Codehighlighter1_322_354_Open_Text.style.display='none'; Codehighlighter1_322_354_Closed_Image.style.display='inline'; Codehighlighter1_322_354_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_322_354_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_322_354_Closed_Text.style.display='none'; Codehighlighter1_322_354_Open_Image.style.display='inline'; Codehighlighter1_322_354_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> function  Person()  </span><span id="Codehighlighter1_322_354_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_322_354_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/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">Person实例</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  o </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Person();<br /><img id="Codehighlighter1_407_440_Open_Image" onclick="this.style.display='none'; Codehighlighter1_407_440_Open_Text.style.display='none'; Codehighlighter1_407_440_Closed_Image.style.display='inline'; Codehighlighter1_407_440_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_407_440_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_407_440_Closed_Text.style.display='none'; Codehighlighter1_407_440_Open_Image.style.display='inline'; Codehighlighter1_407_440_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> ( var  key  in  o)  </span><span id="Codehighlighter1_407_440_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_407_440_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    alert(key </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"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> o[key]);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> --&gt; </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000"> SCRIPT </span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> </span></div><p><strong>(2)prototype属性是只读的</strong><br />看如下代码，你不要试图通过变量改变原型对象的属性。你也不可能改变，你只会通过c模式给对象增加一个属性。<br />另外原型对象是所有实例共享的。理论上也不可以改变。</p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">SCRIPT LANGUAGE </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">JavaScript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Person.prototype.name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> Person </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_97_102_Open_Image" onclick="this.style.display='none'; Codehighlighter1_97_102_Open_Text.style.display='none'; Codehighlighter1_97_102_Closed_Image.style.display='inline'; Codehighlighter1_97_102_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_97_102_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_97_102_Closed_Text.style.display='none'; Codehighlighter1_97_102_Open_Image.style.display='inline'; Codehighlighter1_97_102_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> function  Person()  </span><span id="Codehighlighter1_97_102_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_97_102_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  o </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Person();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  o1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Person();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">o.name:</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> o.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: #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">o1.name:</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> o1.name);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />o.name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">zkj</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">o.name:</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> o.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: #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">o1.name:</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> o1.name);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> --&gt; </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">SCRIPT</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> </span></div><img src ="http://www.blogjava.net/zkjbeyond/aggbug/41531.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-04-17 23:12 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41531.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之对象篇(3)函数与自定义”类“</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41530.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Mon, 17 Apr 2006 15:07:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41530.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/41530.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/41530.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/41530.html</trackback:ping><description><![CDATA[开始之前我先明确个问题。如下代码<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%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">SCRIPT LANGUAGE </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">JavaScript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Person.type </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> person </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_99_136_Open_Image" onclick="this.style.display='none'; Codehighlighter1_99_136_Open_Text.style.display='none'; Codehighlighter1_99_136_Closed_Image.style.display='inline'; Codehighlighter1_99_136_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_99_136_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_99_136_Closed_Text.style.display='none'; Codehighlighter1_99_136_Open_Image.style.display='inline'; Codehighlighter1_99_136_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Person.writeType </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> function ()  </span><span id="Codehighlighter1_99_136_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_99_136_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    document.writeln( </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000"> .type);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> var Person = function(){}</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">如果这样定义会报错,可以看看前面文章，函数的预编译。 </span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_220_221_Open_Image" onclick="this.style.display='none'; Codehighlighter1_220_221_Open_Text.style.display='none'; Codehighlighter1_220_221_Closed_Image.style.display='inline'; Codehighlighter1_220_221_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_220_221_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_220_221_Closed_Text.style.display='none'; Codehighlighter1_220_221_Open_Image.style.display='inline'; Codehighlighter1_220_221_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #000000">  function  Person()  </span><span id="Codehighlighter1_220_221_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_220_221_Open_Text"><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Person.writeType();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert( typeof (Person));<br /><img id="Codehighlighter1_299_317_Open_Image" onclick="this.style.display='none'; Codehighlighter1_299_317_Open_Text.style.display='none'; Codehighlighter1_299_317_Closed_Image.style.display='inline'; Codehighlighter1_299_317_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_299_317_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_299_317_Closed_Text.style.display='none'; Codehighlighter1_299_317_Open_Image.style.display='inline'; Codehighlighter1_299_317_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> ( var  key  in  Person)  </span><span id="Codehighlighter1_299_317_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_299_317_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    alert(key);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  person </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Person();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> --&gt; </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">SCRIPT</span><span style="COLOR: #000000">&gt;</span></div>在这里Person是个函数，但我们还可以定义它的属性（type）。而Person有Object实例的特性(for in、可以定义属性)，但Person不是Object的实例。<br /><br />见如下代码：<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%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">SCRIPT LANGUAGE </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">JavaScript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_81_103_Open_Image" onclick="this.style.display='none'; Codehighlighter1_81_103_Open_Text.style.display='none'; Codehighlighter1_81_103_Closed_Image.style.display='inline'; Codehighlighter1_81_103_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_81_103_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_81_103_Closed_Text.style.display='none'; Codehighlighter1_81_103_Open_Image.style.display='inline'; Codehighlighter1_81_103_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Object.prototype.toString </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> function ()  </span><span id="Codehighlighter1_81_103_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_81_103_Open_Text"><span style="COLOR: #000000">{ </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">myToString</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_128_131_Open_Image" onclick="this.style.display='none'; Codehighlighter1_128_131_Open_Text.style.display='none'; Codehighlighter1_128_131_Closed_Image.style.display='inline'; Codehighlighter1_128_131_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_128_131_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_128_131_Closed_Text.style.display='none'; Codehighlighter1_128_131_Open_Image.style.display='inline'; Codehighlighter1_128_131_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> function  Person()  </span><span id="Codehighlighter1_128_131_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_128_131_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_176_194_Open_Image" onclick="this.style.display='none'; Codehighlighter1_176_194_Open_Text.style.display='none'; Codehighlighter1_176_194_Closed_Image.style.display='inline'; Codehighlighter1_176_194_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_176_194_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_176_194_Closed_Text.style.display='none'; Codehighlighter1_176_194_Open_Image.style.display='inline'; Codehighlighter1_176_194_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> Person.prototype.toString </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> function ()  </span><span id="Codehighlighter1_176_194_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_176_194_Open_Text"><span style="COLOR: #000000">{ </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Person</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  o </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Person();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Person)<br /><img id="Codehighlighter1_279_306_Open_Image" onclick="this.style.display='none'; Codehighlighter1_279_306_Open_Text.style.display='none'; Codehighlighter1_279_306_Closed_Image.style.display='inline'; Codehighlighter1_279_306_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_279_306_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_279_306_Closed_Text.style.display='none'; Codehighlighter1_279_306_Open_Image.style.display='inline'; Codehighlighter1_279_306_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Person.toString </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> function ()  </span><span id="Codehighlighter1_279_306_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_279_306_Open_Text"><span style="COLOR: #000000">{ </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Person toString</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Person)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> --&gt; </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">SCRIPT</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span></div><p>我理解function返回的数据类型是和Object同等级的数据类型。它有Object实例（new Object()）的一些特性,但它不是Object的实例，因为它没有继承Object.prototype.toString=function(){return 'myToString'};但我们Person.toString=function(){return 'Person toString'};改变了覆盖了方法。<br />在《javascript权威指南》中，作者用这个特性实现了“类方法、类变量”static方法，与java中不同，这些方法不能用new Person()来调用。</p><p><strong>Object                   function             同等级 function可以定义属性，可以(for in)</strong></p><p><strong>new Object()        new function()    同等级 new function()继承了Object的prototype,                                                      也会继承 function的prototype<br /></strong></p><p>小例子。看了原型对象就很清楚了啊。 原型对象最好在代码最前面定义，很容易被覆盖啊！<br /><br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">SCRIPT LANGUAGE </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">JavaScript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> <br /><img id="Codehighlighter1_70_231_Open_Image" onclick="this.style.display='none'; Codehighlighter1_70_231_Open_Text.style.display='none'; Codehighlighter1_70_231_Closed_Image.style.display='inline'; Codehighlighter1_70_231_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_70_231_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_70_231_Closed_Text.style.display='none'; Codehighlighter1_70_231_Open_Image.style.display='inline'; Codehighlighter1_70_231_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">  Person </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">  ()  </span><span id="Codehighlighter1_70_231_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_70_231_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/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"> 'Person的构造函数中属性name';<br /><img id="Codehighlighter1_146_180_Open_Image" onclick="this.style.display='none'; Codehighlighter1_146_180_Open_Text.style.display='none'; Codehighlighter1_146_180_Closed_Image.style.display='inline'; Codehighlighter1_146_180_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_146_180_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_146_180_Closed_Text.style.display='none'; Codehighlighter1_146_180_Open_Image.style.display='inline'; Codehighlighter1_146_180_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />     </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000"> .getName </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> ()  </span><span id="Codehighlighter1_146_180_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_146_180_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />          </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000"> .name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> this.toString=function(){}  //你把注释去掉看看效果 </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #000000"> }</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Person.name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> Person </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_292_322_Open_Image" onclick="this.style.display='none'; Codehighlighter1_292_322_Open_Text.style.display='none'; Codehighlighter1_292_322_Closed_Image.style.display='inline'; Codehighlighter1_292_322_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_292_322_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_292_322_Closed_Text.style.display='none'; Codehighlighter1_292_322_Open_Image.style.display='inline'; Codehighlighter1_292_322_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Person.toString </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> ()  </span><span id="Codehighlighter1_292_322_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_292_322_Open_Text"><span style="COLOR: #000000">{ </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000"> .name </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> '的类方法'}</span></span><span style="COLOR: #000000"> ; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 我可以用this啊 </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"> alert(Person.toString()) </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 类方法 </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">  o </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">  Person();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o.getName()); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 构造函数中的方法 </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"> alert(o); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 访问toString方法   先找  对象中 构造函数中   Person的prototype中       Object的prototype中 </span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_563_601_Open_Image" onclick="this.style.display='none'; Codehighlighter1_563_601_Open_Text.style.display='none'; Codehighlighter1_563_601_Closed_Image.style.display='inline'; Codehighlighter1_563_601_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_563_601_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_563_601_Closed_Text.style.display='none'; Codehighlighter1_563_601_Open_Image.style.display='inline'; Codehighlighter1_563_601_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #000000">  Object.prototype.toString </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> ()  </span><span id="Codehighlighter1_563_601_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_563_601_Open_Text"><span style="COLOR: #000000">{ </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  'Object的prototype中的toString'}</span></span><span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Object的prototype中 </span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_680_717_Open_Image" onclick="this.style.display='none'; Codehighlighter1_680_717_Open_Text.style.display='none'; Codehighlighter1_680_717_Closed_Image.style.display='inline'; Codehighlighter1_680_717_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_680_717_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_680_717_Closed_Text.style.display='none'; Codehighlighter1_680_717_Open_Image.style.display='inline'; Codehighlighter1_680_717_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #000000">  Person.prototype.toString </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> ()  </span><span id="Codehighlighter1_680_717_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_680_717_Open_Text"><span style="COLOR: #000000">{ </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  'Person的prototpe中的toString'}</span></span><span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o);<br /><img id="Codehighlighter1_757_785_Open_Image" onclick="this.style.display='none'; Codehighlighter1_757_785_Open_Text.style.display='none'; Codehighlighter1_757_785_Closed_Image.style.display='inline'; Codehighlighter1_757_785_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_757_785_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_757_785_Closed_Text.style.display='none'; Codehighlighter1_757_785_Open_Image.style.display='inline'; Codehighlighter1_757_785_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />o.toString </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> ()  </span><span id="Codehighlighter1_757_785_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 src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_757_785_Open_Text"><span style="COLOR: #000000">{ </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">  '我覆盖了toString方法了啊'}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert('我不能访问前面的toString了。如果有super就好了！');<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 其实还是可以访问到被覆盖的原型的。那样太复杂了。 </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />//</span><span style="COLOR: #008000"> --&gt; </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">SCRIPT</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><p><br /></p><img src ="http://www.blogjava.net/zkjbeyond/aggbug/41530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-04-17 23:07 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之对象篇 (2)大家熟悉的javascript对象</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41527.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Mon, 17 Apr 2006 15:03:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41527.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/41527.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/41527.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/41527.html</trackback:ping><description><![CDATA[
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> JavaScript </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;!--</span>
				<span style="COLOR: #000000"> <br /><img id="Codehighlighter1_83_105_Open_Image" onclick="this.style.display='none'; Codehighlighter1_83_105_Open_Text.style.display='none'; Codehighlighter1_83_105_Closed_Image.style.display='inline'; Codehighlighter1_83_105_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_83_105_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_83_105_Closed_Text.style.display='none'; Codehighlighter1_83_105_Open_Image.style.display='inline'; Codehighlighter1_83_105_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Object.prototype.toString </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> function ()  </span>
				<span id="Codehighlighter1_83_105_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_83_105_Open_Text">
						<span style="COLOR: #000000">{ </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000">  </span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">myToString</span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000"> ;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  o </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000">  Object();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />o.name </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">zkj</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />o.age </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">25</span>
				<span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_185_234_Open_Image" onclick="this.style.display='none'; Codehighlighter1_185_234_Open_Text.style.display='none'; Codehighlighter1_185_234_Closed_Image.style.display='inline'; Codehighlighter1_185_234_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_185_234_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_185_234_Closed_Text.style.display='none'; Codehighlighter1_185_234_Open_Image.style.display='inline'; Codehighlighter1_185_234_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />o.desc </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> function ()  </span>
				<span id="Codehighlighter1_185_234_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_185_234_Open_Text">
						<span style="COLOR: #000000">{ </span>
						<span style="COLOR: #0000ff">return</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">+</span>
						<span style="COLOR: #000000"> </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">,年龄:</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"> .age}</span>
				</span>
				<span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_263_410_Open_Image" onclick="this.style.display='none'; Codehighlighter1_263_410_Open_Text.style.display='none'; Codehighlighter1_263_410_Closed_Image.style.display='inline'; Codehighlighter1_263_410_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_263_410_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_263_410_Closed_Text.style.display='none'; Codehighlighter1_263_410_Open_Image.style.display='inline'; Codehighlighter1_263_410_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span>
				<span style="COLOR: #0000ff">for</span>
				<span style="COLOR: #000000"> ( var  key  in  o)  </span>
				<span id="Codehighlighter1_263_410_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_263_410_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    alert(key </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"> </span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000"> o[key] </span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000"> type:</span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000"> typeof (o[key]))<br /><img id="Codehighlighter1_365_407_Open_Image" onclick="this.style.display='none'; Codehighlighter1_365_407_Open_Text.style.display='none'; Codehighlighter1_365_407_Closed_Image.style.display='inline'; Codehighlighter1_365_407_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_365_407_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_365_407_Closed_Text.style.display='none'; Codehighlighter1_365_407_Open_Image.style.display='inline'; Codehighlighter1_365_407_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000"> ( typeof (o[key]) </span>
						<span style="COLOR: #000000">==</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000"> function </span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">)  </span>
						<span id="Codehighlighter1_365_407_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 src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_365_407_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        alert(</span>
								<span style="COLOR: #000000">'</span>
								<span style="COLOR: #000000">执行方法key：</span>
								<span style="COLOR: #000000">'</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000"> (o[key])())<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert( </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000">  Date());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> --&gt; </span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">     </span>
		</div>
		<br />
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;!--</span>
				<span style="COLOR: #000000"> <br /><img id="Codehighlighter1_82_104_Open_Image" onclick="this.style.display='none'; Codehighlighter1_82_104_Open_Text.style.display='none'; Codehighlighter1_82_104_Closed_Image.style.display='inline'; Codehighlighter1_82_104_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_82_104_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_82_104_Closed_Text.style.display='none'; Codehighlighter1_82_104_Open_Image.style.display='inline'; Codehighlighter1_82_104_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> Object.prototype.toString </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> function ()  </span>
				<span id="Codehighlighter1_82_104_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_82_104_Open_Text">
						<span style="COLOR: #000000">{ </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000">  </span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">myToString</span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_129_132_Open_Image" onclick="this.style.display='none'; Codehighlighter1_129_132_Open_Text.style.display='none'; Codehighlighter1_129_132_Closed_Image.style.display='inline'; Codehighlighter1_129_132_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_129_132_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_129_132_Closed_Text.style.display='none'; Codehighlighter1_129_132_Open_Image.style.display='inline'; Codehighlighter1_129_132_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> function  person()  </span>
				<span id="Codehighlighter1_129_132_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_129_132_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> var  o </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000">  person();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />o.name </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">zkj</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />o.age </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">25</span>
				<span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_211_260_Open_Image" onclick="this.style.display='none'; Codehighlighter1_211_260_Open_Text.style.display='none'; Codehighlighter1_211_260_Closed_Image.style.display='inline'; Codehighlighter1_211_260_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_211_260_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_211_260_Closed_Text.style.display='none'; Codehighlighter1_211_260_Open_Image.style.display='inline'; Codehighlighter1_211_260_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />o.desc </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> function ()  </span>
				<span id="Codehighlighter1_211_260_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_211_260_Open_Text">
						<span style="COLOR: #000000">{ </span>
						<span style="COLOR: #0000ff">return</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">+</span>
						<span style="COLOR: #000000"> </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">,年龄:</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"> .age}</span>
				</span>
				<span style="COLOR: #000000"> ;<br /><img id="Codehighlighter1_289_436_Open_Image" onclick="this.style.display='none'; Codehighlighter1_289_436_Open_Text.style.display='none'; Codehighlighter1_289_436_Closed_Image.style.display='inline'; Codehighlighter1_289_436_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_289_436_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_289_436_Closed_Text.style.display='none'; Codehighlighter1_289_436_Open_Image.style.display='inline'; Codehighlighter1_289_436_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span>
				<span style="COLOR: #0000ff">for</span>
				<span style="COLOR: #000000"> ( var  key  in  o)  </span>
				<span id="Codehighlighter1_289_436_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_289_436_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    alert(key </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"> </span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000"> o[key] </span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000"> type:</span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000"> typeof (o[key]))<br /><img id="Codehighlighter1_391_433_Open_Image" onclick="this.style.display='none'; Codehighlighter1_391_433_Open_Text.style.display='none'; Codehighlighter1_391_433_Closed_Image.style.display='inline'; Codehighlighter1_391_433_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_391_433_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_391_433_Closed_Text.style.display='none'; Codehighlighter1_391_433_Open_Image.style.display='inline'; Codehighlighter1_391_433_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000"> ( typeof (o[key]) </span>
						<span style="COLOR: #000000">==</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000"> function </span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">)  </span>
						<span id="Codehighlighter1_391_433_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 src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_391_433_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        alert(</span>
								<span style="COLOR: #000000">'</span>
								<span style="COLOR: #000000">执行方法key：</span>
								<span style="COLOR: #000000">'</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000"> (o[key])())<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert( </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000">  Date());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> --&gt; </span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> </span>
		</div>
		<br />看以上两段代码，估计很多人对后面的代码熟悉，也这样写了。可他们执行结果是一样的。如果你改变了javascript对象的原型对象后会有些区别。<br />在这我想提出以下几个问题：<br />    a、javascript对象也是单根继承的对象.但不是所有对象都继承自Object.如例子中的Date对象。<br />    b、千万别乱定义Object.prototype原型对象。prototype.js中加了个extends被人说了半天。但我们自己写类库时，千万别尝试改Object的prototype。<br />    c、别用javacript语言模仿java来写代码。想上面的，需要一个person的“类”，并不是非需要定义一个，注意javascript对象的属性是可以随意增加或删除的。并不象java那样在类中写死。<br />    d、就上面两段代码有什么区别呢？可以简单的说是person继承了Object”类“。javascript中对象的继承是用prototype来实现的，后面我们讨论prototype原型对象。<br />    e、那我们应用的时候到底是否该自己定义自己的构造函数（如person）,还是直接使用Object呢？这是个复杂的问题，我个人来说喜欢多用Object.<br /><img src ="http://www.blogjava.net/zkjbeyond/aggbug/41527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-04-17 23:03 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之对象篇(1) javascript中有那些对象</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41525.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Mon, 17 Apr 2006 14:58:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41525.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/41525.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/41525.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/41525.html</trackback:ping><description><![CDATA[  a、基本数据类型的包装对象。例如String Number Boolean.关于这三个包装对象这里不准备讨论。建议直接用var s=""; var i=1; var b=false;定义，包装类与java中的包装类不同。javascript中不要用包装类。<br />   b、javascript预定义的对象。Function Array Date   RegExp  Error等对象。这些对象使用比较简单，也不讨论了。<br />   c、用new Object()创建的对象。等同与var o={a:0,b:'s'};<br />   d、用自定义的构造函数创建的对象。function O(){};  var o=new O();<br />   e、dom模型定义的构造函数，浏览器为你创建的对象。用var o=document.getElementById();或其他方法获得。<br />   f、null也是对象。typeof(null)= object.undefined我理解为变量预编译的初始化值，而null是特殊的对象。如果一个变量=null,说明这个变量是个对象，但不是我上面提到的任何来源方式的对象。 如document.getElementById(页面中不存在的id);可以产生一个null对象。
<p>   用typeof()  方法返回的是 object 的变量都是对象。 Function除外用new定义的不一定都是对象。  </p><img src ="http://www.blogjava.net/zkjbeyond/aggbug/41525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-04-17 22:58 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/04/17/41525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之对象篇(6)Object类原型对象的属性和方法</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/04/16/41336.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Sun, 16 Apr 2006 08:15:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/04/16/41336.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/41336.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/04/16/41336.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/41336.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/41336.html</trackback:ping><description><![CDATA[
		<p>javascript所有对象都继承自Object类。以下是Object类的一些属性。原型对象</p>
		<p>的一些属性。</p>
		<p>
				<strong>1、constructor属性<br /></strong>从javascript1.1开始，每个对象都有这个属性，它指向用来初始化改对象的构造</p>
		<p>函数</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;!--</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_53_54_Open_Image" onclick="this.style.display='none'; Codehighlighter1_53_54_Open_Text.style.display='none'; Codehighlighter1_53_54_Closed_Image.style.display='inline'; Codehighlighter1_53_54_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_53_54_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_53_54_Closed_Text.style.display='none'; Codehighlighter1_53_54_Open_Image.style.display='inline'; Codehighlighter1_53_54_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> Person()</span>
				<span id="Codehighlighter1_53_54_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_53_54_Open_Text">
						<span style="COLOR: #000000">{}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> o</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Person();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(</span>
				<span style="COLOR: #0000ff">typeof</span>
				<span style="COLOR: #000000">(Person.constructor));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o.constructor);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Person.constructor);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Function.constructor);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Object.constructor)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Date().constructor);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Date.constructor);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_289_292_Open_Image" onclick="this.style.display='none'; Codehighlighter1_289_292_Open_Text.style.display='none'; Codehighlighter1_289_292_Closed_Image.style.display='inline'; Codehighlighter1_289_292_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_289_292_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_289_292_Closed_Text.style.display='none'; Codehighlighter1_289_292_Open_Image.style.display='inline'; Codehighlighter1_289_292_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> Man()</span>
				<span id="Codehighlighter1_289_292_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_289_292_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Man.prototype</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Person();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Man.constructor);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />o</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Man();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o.constructor)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Man.prototype.constructor</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">Man;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o.constructor)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">--&gt;</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p> </p>
		<p>如以上代码，可以知道<br />a、constructor的类型是函数；<br />b、javascript内部实现了很多函数，如Object,Date都是函数由Function得到的</p>
		<p>。<br />c、用原型对象实现的继承中，也要设置子类的constructor。如果你的程序中用</p>
		<p>到了constructor，可能会出错。<br /><strong>2、toString()方法</strong><br />相当于java Object类中toString方法。你alert()  + 等操作中就会调用这个方</p>
		<p>法。 var s='1'+'2',会自动把'1'  '2'  转化成String对象在执行。</p>
		<p>但数组定义自己的toString方法。alert(Array.prototype.toString)</p>
		<p>如果对象或子类要调用父类的方法可以</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;!--</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert([</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">].toLocalString())<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Object.prototype.toString.apply([</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">]));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">--&gt;</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p> </p>
		<p>
				<strong>3、toLocalString()方法</strong>
				<br />ECMAScript v3 javascript1.5中定义了这个方法。返回局部化的值。偶还不知道</p>
		<p>什么用法。<br /><strong>4、valueof()</strong><br />当javascript与要将一个对象转化成字符串之外的原始类型时调用它。</p>
		<p>
				<strong>5、hasOwnProperty()方法</strong>
				<br />《javascript权威指南》说如果是非继承的属性返回true.但下列代码反映，它检</p>
		<p>验对象的实例属性。对原型属性不会返回。</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;!--</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_57_79_Open_Image" onclick="this.style.display='none'; Codehighlighter1_57_79_Open_Text.style.display='none'; Codehighlighter1_57_79_Closed_Image.style.display='inline'; Codehighlighter1_57_79_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_57_79_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_57_79_Closed_Text.style.display='none'; Codehighlighter1_57_79_Open_Image.style.display='inline'; Codehighlighter1_57_79_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> Person(name)</span>
				<span id="Codehighlighter1_57_79_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_57_79_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/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">name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_118_138_Open_Image" onclick="this.style.display='none'; Codehighlighter1_118_138_Open_Text.style.display='none'; Codehighlighter1_118_138_Closed_Image.style.display='inline'; Codehighlighter1_118_138_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_118_138_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_118_138_Closed_Text.style.display='none'; Codehighlighter1_118_138_Open_Image.style.display='inline'; Codehighlighter1_118_138_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Person.prototype.setAge</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">(age)</span>
				<span id="Codehighlighter1_118_138_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_118_138_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.age</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">age;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_176_225_Open_Image" onclick="this.style.display='none'; Codehighlighter1_176_225_Open_Text.style.display='none'; Codehighlighter1_176_225_Closed_Image.style.display='inline'; Codehighlighter1_176_225_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_176_225_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_176_225_Closed_Text.style.display='none'; Codehighlighter1_176_225_Open_Image.style.display='inline'; Codehighlighter1_176_225_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Person.prototype.toString</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">()</span>
				<span id="Codehighlighter1_176_225_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_176_225_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> 'name:'</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.name</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">' age:'</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.age;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> o</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Person('zkj');<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />o.setAge(</span>
				<span style="COLOR: #000000">25</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o.hasOwnProperty(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">name</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o.hasOwnProperty(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">age</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o.hasOwnProperty(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">setAge</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o.hasOwnProperty(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">toString</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Person.prototype.hasOwnProperty(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">setAge</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">--&gt;</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p>
				<br />
				<br />
				<strong>6、propertyIsEnumerable</strong>
				<br />《javascript权威指南》如果用能 for( in )枚举的属性，这个方法返回true;<br />以下代码说明《javascript权威指南》<font color="#ff3300">是错的</font>。自己定义的原型对象属性可以枚</p>
		<p>举，但返回false</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;!--</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_57_79_Open_Image" onclick="this.style.display='none'; Codehighlighter1_57_79_Open_Text.style.display='none'; Codehighlighter1_57_79_Closed_Image.style.display='inline'; Codehighlighter1_57_79_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_57_79_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_57_79_Closed_Text.style.display='none'; Codehighlighter1_57_79_Open_Image.style.display='inline'; Codehighlighter1_57_79_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> Person(name)</span>
				<span id="Codehighlighter1_57_79_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_57_79_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/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">name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_118_138_Open_Image" onclick="this.style.display='none'; Codehighlighter1_118_138_Open_Text.style.display='none'; Codehighlighter1_118_138_Closed_Image.style.display='inline'; Codehighlighter1_118_138_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_118_138_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_118_138_Closed_Text.style.display='none'; Codehighlighter1_118_138_Open_Image.style.display='inline'; Codehighlighter1_118_138_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Person.prototype.setAge</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">(age)</span>
				<span id="Codehighlighter1_118_138_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_118_138_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.age</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">age;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_176_225_Open_Image" onclick="this.style.display='none'; Codehighlighter1_176_225_Open_Text.style.display='none'; Codehighlighter1_176_225_Closed_Image.style.display='inline'; Codehighlighter1_176_225_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_176_225_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_176_225_Closed_Text.style.display='none'; Codehighlighter1_176_225_Open_Image.style.display='inline'; Codehighlighter1_176_225_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Person.prototype.toString</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">()</span>
				<span id="Codehighlighter1_176_225_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_176_225_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> 'name:'</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.name</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">' age:'</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.age;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> o</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Person('zkj');<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />o.setAge(</span>
				<span style="COLOR: #000000">25</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(o.propertyIsEnumerable('setAge'));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> desc</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">'';<br /><img id="Codehighlighter1_337_564_Open_Image" onclick="this.style.display='none'; Codehighlighter1_337_564_Open_Text.style.display='none'; Codehighlighter1_337_564_Closed_Image.style.display='inline'; Codehighlighter1_337_564_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_337_564_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_337_564_Closed_Text.style.display='none'; Codehighlighter1_337_564_Open_Image.style.display='inline'; Codehighlighter1_337_564_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span style="COLOR: #0000ff">for</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> key </span>
				<span style="COLOR: #0000ff">in</span>
				<span style="COLOR: #000000"> o)</span>
				<span id="Codehighlighter1_337_564_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_337_564_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    desc</span>
						<span style="COLOR: #000000">+=</span>
						<span style="COLOR: #000000">key</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">'  ';<br /><img id="Codehighlighter1_388_416_Open_Image" onclick="this.style.display='none'; Codehighlighter1_388_416_Open_Text.style.display='none'; Codehighlighter1_388_416_Closed_Image.style.display='inline'; Codehighlighter1_388_416_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_388_416_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_388_416_Closed_Text.style.display='none'; Codehighlighter1_388_416_Open_Image.style.display='inline'; Codehighlighter1_388_416_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">(o.hasOwnProperty(key))</span>
						<span id="Codehighlighter1_388_416_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 src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_388_416_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        desc</span>
								<span style="COLOR: #000000">+=</span>
								<span style="COLOR: #000000">' 是实例对象 ';<br /><img id="Codehighlighter1_421_450_Open_Image" onclick="this.style.display='none'; Codehighlighter1_421_450_Open_Text.style.display='none'; Codehighlighter1_421_450_Closed_Image.style.display='inline'; Codehighlighter1_421_450_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_421_450_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_421_450_Closed_Text.style.display='none'; Codehighlighter1_421_450_Open_Image.style.display='inline'; Codehighlighter1_421_450_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #0000ff">else</span>
						<span id="Codehighlighter1_421_450_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 src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_421_450_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        desc</span>
								<span style="COLOR: #000000">+=</span>
								<span style="COLOR: #000000">' 不是实例对象 ';<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_484_511_Open_Image" onclick="this.style.display='none'; Codehighlighter1_484_511_Open_Text.style.display='none'; Codehighlighter1_484_511_Closed_Image.style.display='inline'; Codehighlighter1_484_511_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_484_511_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_484_511_Closed_Text.style.display='none'; Codehighlighter1_484_511_Open_Image.style.display='inline'; Codehighlighter1_484_511_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">(o.propertyIsEnumerable(key))</span>
						<span id="Codehighlighter1_484_511_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 src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_484_511_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        desc</span>
								<span style="COLOR: #000000">+=</span>
								<span style="COLOR: #000000">' 能被枚举 ';<br /><img id="Codehighlighter1_516_544_Open_Image" onclick="this.style.display='none'; Codehighlighter1_516_544_Open_Text.style.display='none'; Codehighlighter1_516_544_Closed_Image.style.display='inline'; Codehighlighter1_516_544_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_516_544_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_516_544_Closed_Text.style.display='none'; Codehighlighter1_516_544_Open_Image.style.display='inline'; Codehighlighter1_516_544_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #0000ff">else</span>
						<span id="Codehighlighter1_516_544_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 src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_516_544_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        desc</span>
								<span style="COLOR: #000000">+=</span>
								<span style="COLOR: #000000">' 不能被枚举 ';<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> desc</span>
						<span style="COLOR: #000000">+=</span>
						<span style="COLOR: #000000">'\r\n';<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(desc);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">--&gt;</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p>
				<br />
				<br />
				<strong>7、isPrototypeOf方法</strong>
				<br />《javascript权威指南》如果调用对象是实际参数指定的对象的原型对象返回</p>
		<p>true. 看代码吧。<br />居然<font color="#ff0000">alert(Object.prototype.isPrototypeOf(Person));//true也是true.搞不懂<br /></font></p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;!--</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_57_79_Open_Image" onclick="this.style.display='none'; Codehighlighter1_57_79_Open_Text.style.display='none'; Codehighlighter1_57_79_Closed_Image.style.display='inline'; Codehighlighter1_57_79_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_57_79_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_57_79_Closed_Text.style.display='none'; Codehighlighter1_57_79_Open_Image.style.display='inline'; Codehighlighter1_57_79_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> Person(name)</span>
				<span id="Codehighlighter1_57_79_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_57_79_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/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">name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_118_138_Open_Image" onclick="this.style.display='none'; Codehighlighter1_118_138_Open_Text.style.display='none'; Codehighlighter1_118_138_Closed_Image.style.display='inline'; Codehighlighter1_118_138_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_118_138_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_118_138_Closed_Text.style.display='none'; Codehighlighter1_118_138_Open_Image.style.display='inline'; Codehighlighter1_118_138_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Person.prototype.setAge</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">(age)</span>
				<span id="Codehighlighter1_118_138_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_118_138_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.age</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">age;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_176_225_Open_Image" onclick="this.style.display='none'; Codehighlighter1_176_225_Open_Text.style.display='none'; Codehighlighter1_176_225_Closed_Image.style.display='inline'; Codehighlighter1_176_225_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_176_225_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_176_225_Closed_Text.style.display='none'; Codehighlighter1_176_225_Open_Image.style.display='inline'; Codehighlighter1_176_225_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />Person.prototype.toString</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">()</span>
				<span id="Codehighlighter1_176_225_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_176_225_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> 'name:'</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.name</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">' age:'</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.age;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> o</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Person('zkj');<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />o.setAge(</span>
				<span style="COLOR: #000000">25</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Person.prototype.isPrototypeOf(o));</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">true</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">alert(Person.isPrototypeOf(o));</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">false</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">alert(o.isPrototypeOf(Person.prototype));</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">false</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">alert(Function.prototype.isPrototypeOf(Person));</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">true</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">alert(Object.prototype.isPrototypeOf(Person));</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">true</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />//</span>
				<span style="COLOR: #008000">--&gt;</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p>
				<br /> </p>
		<p>8、总结<br />看《javascript权威指南》前，就知道toString方法。现在知道了些其他的方法</p>
		<p>，但让我更加混乱，《javascript权威指南》讲的也有错误。开发中建议大家除</p>
		<p>了toString,其他属性方法不要覆盖也不要使用了。除了对这些方法十分清楚。就</p>
		<p>我知道的javascript开源框架中好象没用到这些。<br /></p>
<img src ="http://www.blogjava.net/zkjbeyond/aggbug/41336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-04-16 16:15 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/04/16/41336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之函数篇 </title><link>http://www.blogjava.net/zkjbeyond/archive/2006/04/06/39514.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Thu, 06 Apr 2006 01:22:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/04/06/39514.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/39514.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/04/06/39514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/39514.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/39514.html</trackback:ping><description><![CDATA[
		<p>      在javascript中，function作为一个关键字有两方面的应用。<br />     a、可以定义函数。<br />     b、可以定义一个数据类型。这里只介绍函数。关于function定义类的功能在对象中介绍。<br /><strong>1、函数的概念</strong><br />    javascript中提供了许多预定义函数，我们可以直接使用，比如Math.sin();eval()等。<br />我们也可以定义自己的函数。有以下四种方法：</p>
		<p>a、function add(x,y){return x+y;}<br />b、var add = function(x,y){return x+y;}<br />c、var add = new Function("x","y","return x+y;");<br />d、var add =function a(x,y){return x+y;}</p>
		<p>在这，如果用add(2,3);调用，返回的结果都是5。但它们使用有很大的区别，后面在详细解释。<br /><br /><strong>2、函数的参数</strong><br />     回想上一篇提到函数的调用对象。虽然我们不能访问它，看不见，但引入这个概念确实可以方便我们解释很多东西。<br />     在一个函数体内，标识符arguments有特殊含义。它是调用对象的一个特殊属性。<br /><br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_48_275_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_275_Open_Text.style.display='none'; Codehighlighter1_48_275_Closed_Image.style.display='inline'; Codehighlighter1_48_275_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_48_275_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_48_275_Closed_Text.style.display='none'; Codehighlighter1_48_275_Open_Image.style.display='inline'; Codehighlighter1_48_275_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> add(x,y)</span>
				<span id="Codehighlighter1_48_275_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_48_275_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />document.writeln('x</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">x);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />document.writeln('y</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">'</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">y);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />document.writeln('arguments[</span>
						<span style="COLOR: #000000">0</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">arguments[</span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">]);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />document.writeln('arguments[</span>
						<span style="COLOR: #000000">1</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">arguments[</span>
						<span style="COLOR: #000000">1</span>
						<span style="COLOR: #000000">]);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />arguments[</span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">]</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">11</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />document.writeln('arguments[</span>
						<span style="COLOR: #000000">0</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">arguments[</span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">]);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> x</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">y;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />document.writeln(add(</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p>     看例子，基本你可以把arguments当成个数组使用，但并不是真正的数组。<br />    虽然arguments.length and arguments[index]可以在函数内改变，但建议你不要在函数内改变它们。关于arguments的具体用法可以看prototype.js.<br />arguments还有个属性 callee.引用当前正在执行的函数。</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_48_154_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_154_Open_Text.style.display='none'; Codehighlighter1_48_154_Closed_Image.style.display='inline'; Codehighlighter1_48_154_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_48_154_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_48_154_Closed_Text.style.display='none'; Codehighlighter1_48_154_Open_Image.style.display='inline'; Codehighlighter1_48_154_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> add(x,y)</span>
				<span id="Codehighlighter1_48_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_48_154_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    document.writeln(arguments.callee);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    document.writeln(</span>
						<span style="COLOR: #0000ff">typeof</span>
						<span style="COLOR: #000000">(arguments.callee));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> x</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">y;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />document.writeln(add);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />document.writeln(</span>
				<span style="COLOR: #0000ff">typeof</span>
				<span style="COLOR: #000000">(add));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />document.writeln('</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">br</span>
				<span style="COLOR: #000000">&gt;-----------------------&lt;/</span>
				<span style="COLOR: #000000">br</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">');<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />add();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p>
				<strong>3、函数是一种数据类型</strong>
				<br />    在javascript中，函数不但能象java一样当成语言的语法特性，还可以象字符串、数字、日期一样当成一种数据。<br />    var add=function(x,y){return x+y;};其实我们函数的定义都是把函数附值给变量。函数不但可以附值给变量，还可以当成参数传递。</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_52_64_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_64_Open_Text.style.display='none'; Codehighlighter1_52_64_Closed_Image.style.display='inline'; Codehighlighter1_52_64_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_52_64_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_64_Closed_Text.style.display='none'; Codehighlighter1_52_64_Open_Image.style.display='inline'; Codehighlighter1_52_64_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> add</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">(x,y)</span>
				<span id="Codehighlighter1_52_64_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_52_64_Open_Text">
						<span style="COLOR: #000000">{</span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> x</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">y;}</span>
				</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> fun</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">add;<br /><img id="Codehighlighter1_105_128_Open_Image" onclick="this.style.display='none'; Codehighlighter1_105_128_Open_Text.style.display='none'; Codehighlighter1_105_128_Closed_Image.style.display='inline'; Codehighlighter1_105_128_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_105_128_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_105_128_Closed_Text.style.display='none'; Codehighlighter1_105_128_Open_Image.style.display='inline'; Codehighlighter1_105_128_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> opetate(fun,x,y)</span>
				<span id="Codehighlighter1_105_128_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_105_128_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> fun(x,y);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(opetate(fun,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p> </p>
		<p>其实javascript的熟手不会在全局变量里（直接在js文件中）定义函数，都会定义在全局变量的属性字段中。如</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_43_44_Open_Image" onclick="this.style.display='none'; Codehighlighter1_43_44_Open_Text.style.display='none'; Codehighlighter1_43_44_Closed_Image.style.display='inline'; Codehighlighter1_43_44_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_43_44_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_43_44_Closed_Text.style.display='none'; Codehighlighter1_43_44_Open_Image.style.display='inline'; Codehighlighter1_43_44_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> MyLib</span>
				<span style="COLOR: #000000">=</span>
				<span id="Codehighlighter1_43_44_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_43_44_Open_Text">
						<span style="COLOR: #000000">{}</span>
				</span>
				<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_70_71_Open_Image" onclick="this.style.display='none'; Codehighlighter1_70_71_Open_Text.style.display='none'; Codehighlighter1_70_71_Closed_Image.style.display='inline'; Codehighlighter1_70_71_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_70_71_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_70_71_Closed_Text.style.display='none'; Codehighlighter1_70_71_Open_Image.style.display='inline'; Codehighlighter1_70_71_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  MyLib.fun1</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">()</span>
				<span id="Codehighlighter1_70_71_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_70_71_Open_Text">
						<span style="COLOR: #000000">{}</span>
				</span>
				<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_97_98_Open_Image" onclick="this.style.display='none'; Codehighlighter1_97_98_Open_Text.style.display='none'; Codehighlighter1_97_98_Closed_Image.style.display='inline'; Codehighlighter1_97_98_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_97_98_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_97_98_Closed_Text.style.display='none'; Codehighlighter1_97_98_Open_Image.style.display='inline'; Codehighlighter1_97_98_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  MyLib.fun2</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">()</span>
				<span id="Codehighlighter1_97_98_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_97_98_Open_Text">
						<span style="COLOR: #000000">{}</span>
				</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  alert(MyLib);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  alert(MyLib.fun1);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p>如果这种写法，我们就基本不会和别人写的程序发生命名上的冲突了。</p>
		<p>
				<strong>4、函数的生命周期</strong>
				<br />    在变量里我们知道函数有个预编译过程，这个过程我们也看到不到，另外函数定义不同写法情况也不同。所以，感觉函数的执行过程很是复杂。</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  fun1();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  alert(fun1);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">///////////把以下代码放到定义最后面可以执行。</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">  fun2();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  alert(fun2)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  fun3();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  alert(fun3)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">/////////////////////////</span>
				<span style="COLOR: #008000">
						<br />
						<img id="Codehighlighter1_182_212_Open_Image" onclick="this.style.display='none'; Codehighlighter1_182_212_Open_Text.style.display='none'; Codehighlighter1_182_212_Closed_Image.style.display='inline'; Codehighlighter1_182_212_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_182_212_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_182_212_Closed_Text.style.display='none'; Codehighlighter1_182_212_Open_Image.style.display='inline'; Codehighlighter1_182_212_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #000000">  </span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> fun1()</span>
				<span id="Codehighlighter1_182_212_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_182_212_Open_Text">
						<span style="COLOR: #000000">{document.writeln('fun1 run</span>
						<span style="COLOR: #000000">!</span>
						<span style="COLOR: #000000">')}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_236_266_Open_Image" onclick="this.style.display='none'; Codehighlighter1_236_266_Open_Text.style.display='none'; Codehighlighter1_236_266_Closed_Image.style.display='inline'; Codehighlighter1_236_266_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_236_266_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_236_266_Closed_Text.style.display='none'; Codehighlighter1_236_266_Open_Image.style.display='inline'; Codehighlighter1_236_266_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> fun2 </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000">()</span>
				<span id="Codehighlighter1_236_266_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_236_266_Open_Text">
						<span style="COLOR: #000000">{document.writeln('fun2 run</span>
						<span style="COLOR: #000000">!</span>
						<span style="COLOR: #000000">')}</span>
				</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> fun3 </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Function(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">document.writeln('fun3 run!')</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p>
				<br />
				<strong>a、javascript预编译过程</strong>（在html中， &lt;/head&gt;前后,&lt;body&gt;内外有特殊情况，这指纯.js文件中）<br />    javascript的预编译我认为是个很简单的过程，对于解释执行语言，肯定不会编译成什么中间语言。（我认为）过程如下：<br />    首先，为执行环境（一个html也，框架环境下有几个执行环境）建立建立一个全局对象，一般客户端脚本为 window或global对象。（在这我觉得global好理解，因为浏览器会放入window总其他的属性）<br />    然后，检查某环境中根代码块中（非函数或{}中）var关键字，把这些变量设置成global对象的属性，并附初值undefined.<br />   如果过程中遇到直接定义的函数（fun1的定义），那么把fun1设置成global对象的属性，并附初值函数的定义（你可以把函数当成undefined,true,1,'1'等数据类型）。<br /><strong>b、解释执行过程<br /></strong>   代码按照顺序执行，<br />   一般我们把全局变量的俯值放到代码最前面，如var s="hello";  那么把s的值用 'hello'替换预编译过程的undefined。<br />   如果遇到变量的应用，如代码  document.writeln(a)，如果我们在global找到属性a,看a是否在前面代码俯值过，如果没有，a的值为预编译的undefined。如果是隐式变量声明，在这把它添加到global的属性中去。<br />   如果遇到类似var fun=function(){}; 把函数当成数据赋值给变量fun.<br /><strong>c、函数的调用过程<br /></strong>   你运行一下以下代码，为什么结果是 test undefined local<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">var</span>
				<span style="COLOR: #000000"> s</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">golbe</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_61_160_Open_Image" onclick="this.style.display='none'; Codehighlighter1_61_160_Open_Text.style.display='none'; Codehighlighter1_61_160_Closed_Image.style.display='inline'; Codehighlighter1_61_160_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_61_160_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_61_160_Closed_Text.style.display='none'; Codehighlighter1_61_160_Open_Image.style.display='inline'; Codehighlighter1_61_160_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> fun(s)</span>
				<span id="Codehighlighter1_61_160_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_61_160_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    document.writeln(s);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    document.writeln(a);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> s</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">local</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> a</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">""</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> s;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />document.writeln(fun(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">test</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p> </p>
		<p>首先：预编译代码，把s、fun设置为golbe的属性，并赋值s=undefined,fun=函数定义（可以直接调用）。<br />然后：按照顺序解释执行代码。赋值s="golbe";   函数已经可以直接调用了。<br />执行函数：当运行到fun("test")时，开始函数调用。<br />       先为本次调用建立一个调用对象（fun-global）。<br />       预编译函数体内代码，把参数设置为fun-global的属性，值为为传入值"test",查找var，把a设置成fun-global的属性，值为undefined.(如果var s与参数名称相同，则不重复设置例如函数体内var s="local";)<br />      按照顺序执行函数内代码，当代码中遇到变量，先从调用对象属性中查找，如果找到直接使用。遇到var s="local";时，代码会覆盖调用对象中属性值（和参数名称相同）</p>
		<p>
				<span style="FONT-WEIGHT: bold">调用对象是个暂时对象，生命周期很短，只有在调用过程中存在，递归可能会建立多个独立的调用对象。 <br />javascript的函数应该和java中一样是线程安全的吧。</span> <br /></p>
		<p>
				<strong>5、函数的属性和方法</strong>
				<br />a、length<br />看了以下代码一目了然，函数的length代表函数实际需要的参数个数。<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_48_237_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_237_Open_Text.style.display='none'; Codehighlighter1_48_237_Closed_Image.style.display='inline'; Codehighlighter1_48_237_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_48_237_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_48_237_Closed_Text.style.display='none'; Codehighlighter1_48_237_Open_Image.style.display='inline'; Codehighlighter1_48_237_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> add(x,y)</span>
				<span id="Codehighlighter1_48_237_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_48_237_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> actual</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">arguments.length;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> expected</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">arguments.callee.length;<br /><img id="Codehighlighter1_149_219_Open_Image" onclick="this.style.display='none'; Codehighlighter1_149_219_Open_Text.style.display='none'; Codehighlighter1_149_219_Closed_Image.style.display='inline'; Codehighlighter1_149_219_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_149_219_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_149_219_Closed_Text.style.display='none'; Codehighlighter1_149_219_Open_Image.style.display='inline'; Codehighlighter1_149_219_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">(actual</span>
						<span style="COLOR: #000000">!=</span>
						<span style="COLOR: #000000">expected)</span>
						<span id="Codehighlighter1_149_219_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 src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_149_219_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">throw</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> Error('函数需要'</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">expected</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">'个参数，你输入了'</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">actual</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">'个');<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> x</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">y;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(add(</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(add(</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p>b、prototype<br />这个属性引用的是预定义的原型对象，只有在new 函数名 才有效。讲解对象时介绍。<br />c、定义自己的函数属性<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">SCRIPT LANGUAGE</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">JavaScript</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />add.count</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_61_96_Open_Image" onclick="this.style.display='none'; Codehighlighter1_61_96_Open_Text.style.display='none'; Codehighlighter1_61_96_Closed_Image.style.display='inline'; Codehighlighter1_61_96_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_61_96_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_61_96_Closed_Text.style.display='none'; Codehighlighter1_61_96_Open_Image.style.display='inline'; Codehighlighter1_61_96_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> add(x,y)</span>
				<span id="Codehighlighter1_61_96_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 src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_61_96_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    add.count</span>
						<span style="COLOR: #000000">++</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> x</span>
						<span style="COLOR: #000000">+</span>
						<span style="COLOR: #000000">y;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />add(</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />add(</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />add(</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />add(</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />document.writeln('共调用函数几次：'</span>
				<span style="COLOR: #000000">+</span>
				<span style="COLOR: #000000">add.count);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">SCRIPT</span>
				<span style="COLOR: #000000">&gt;</span>
		</div>
		<p>
				<br />d、apply() call()方法<br />去读读prototype.js吧。</p>
<img src ="http://www.blogjava.net/zkjbeyond/aggbug/39514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-04-06 09:22 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/04/06/39514.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之变量篇</title><link>http://www.blogjava.net/zkjbeyond/archive/2006/03/30/38191.html</link><dc:creator>原创专栏 开源学习</dc:creator><author>原创专栏 开源学习</author><pubDate>Thu, 30 Mar 2006 01:33:00 GMT</pubDate><guid>http://www.blogjava.net/zkjbeyond/archive/2006/03/30/38191.html</guid><wfw:comment>http://www.blogjava.net/zkjbeyond/comments/38191.html</wfw:comment><comments>http://www.blogjava.net/zkjbeyond/archive/2006/03/30/38191.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/zkjbeyond/comments/commentRss/38191.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zkjbeyond/services/trackbacks/38191.html</trackback:ping><description><![CDATA[
		<p>
				<font size="6">1、关于变量的声名</font>
				<br />大家都知道javascript是可以隐式声名变量的。但要注意，隐式声名变量总是被创建为全局变量。看以下代码，情愿javascript语言强制声明变量。建议大家一定要var声明变量。<br /><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />function test(){<br />    var a=222;<br /> document.writeln(a);<br />}<br />test();<br />document.writeln(a);<br />&lt;/SCRIPT&gt;</font></p>
		<p>
				<font style="BACKGROUND-COLOR: #a9a9a9">
						<font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />function test(){<br />    a=222;<br /> document.writeln(a);<br />}<br />test();<br />document.writeln(a);<br />&lt;/SCRIPT&gt;</font>
						<br />
				</font>
				<font size="6">2、关于变量的作用域</font>
				<br />猜猜以下代码输出什么。<br /><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />var x='000';<br />document.writeln(x);<br />a();<br />function a(){<br />    var x='aaa';<br /> function b(){<br />     document.writeln(x);<br />        var x='bbb';<br />  document.writeln(x);<br /> }<br /> b();<br />    document.writeln(x);<br />}<br />&lt;/SCRIPT&gt;<br /></font>如果你的答案是   000 undefined bbb aaa。恭喜，ok.当代码用到x变量时，先从函数块（权威指南中用调用对象来解释）中找，如果找不到，从上一级函数块找，直到找到，如果知道顶层代码（指var x='000';的位置）还没找到定义，代码会报未定义错误。</p>
		<p>改一下代码，得到 000 undefined 111 111<br /><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />var x='000';<br />document.writeln(x);<br />a();<br />function a(){<br /> function b(){<br />     document.writeln(x);<br />  document.writeln(x);<br /> }<br /> document.writeln(x);<br /> var x='111';<br /> b(); <br />}<br />&lt;/SCRIPT&gt;<br /></font><font size="6">3、新的问题</font><br />变量个作用域清楚了，注意上面的代码。为什么我的function a()定义以前就可以调用a函数了，而我的var x='111';前“不可以用”x啊？？？<br />让我把我的理解一一道来<br />首先：以下代码让我相信javascript有个预编译过程，不是完全按照顺序解释执行的。<br /><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />a();<br />function a(){<br />    alert();<br />}<br />&lt;/SCRIPT&gt;</font><br />  个人理解这个预编译过程不会象java/c#那样把代码编译成虚拟机认识的语言，更不会象vb，vc那样编译成更底层的语言。猜想只是把这个函数预装载到这段函数执行的全局环境中，在这个执行环境中，该函数被标识定义过，可以直接使用了。（看到网上很多人写的AOP的javascript实现,其实这个预编译过程才是翻译元数据最佳时候，可惜就javascript语言来讲，是有些落伍了）</p>
		<p>这个文章主要讲变量的一些问题。变量说了，为什么函数可以，我变量就不可以呢。<br /><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />document.writeln(a);<br />var a=0;<br />&lt;/SCRIPT&gt;</font><br />为什么我要输出undefined呢？为什么我a就不可以预编译一把呢？<br />大家看看以下两段代码会输出什么呢啊？？？<br /><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />document.writeln(a);<br />a=0;<br />&lt;/SCRIPT&gt;</font></p>
		<p>
				<font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />document.writeln(a);<br />&lt;/SCRIPT&gt;</font>
				<br />可能你运行试了，可能你本来就知道，a未定义。哈哈哈，好了。<br />现在我确信var a=0;被javascript解释器“预编译过”，至少是记录下来了。甚至把它的值设置为 undefined。“undefined”这个词名字取的很是让人误解，怎么能叫未定义呢，分明是javascript中所有变量的初始化值。关于null与undefined的比较我实在不愿提了。<br />注意上面两段代码还反映一个现象。隐式声明的变量是在解释的时候才把自己定义为全局变量的。</p>
		<p>关于函数与变量javascript预编译的不同处理，大家可以与java class的加载过程比较下。java也是对基本类型设出值，对象为null的。（不往远扯了）<br /><font color="#000000" size="6">4、区别未定义变量和未附值变量<br /></font><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />var a;<br />document.writeln(a);<br />&lt;/SCRIPT&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />document.writeln(a);<br />&lt;/SCRIPT&gt;<br /></font>未定义变量和未附值变量   权威指南中文版 定义的。通过第三条分析，我觉得变量就应该以   定义和未定义变量区别。未附值变量和undefined有点冲突，javascript不是强类型语言，没发附默认值，才来了个undefined。<br /><font size="6">5、基本类型和引用类型</font><br />熟悉java的朋友可能这部分很清楚。没啥<br />说头。<br /><font size="6">6、javascript的垃圾回收</font><br />关于这部分内容一直没见着个权威说法。在javascript权威指南中有两小节提到这个问题。<br />对于字符串、对象、数据这些没有固定大小，必须为它们动态的分配内存，但什么时候回收这些内存呢？javascript使用和java一样的garbage collection的方法。<br /><font style="BACKGROUND-COLOR: #d3d3d3">var s="hello";<br />var u=s.toUpperCase();<br />s=u;</font><br />运行这段代码后，"hello"没有变量会再用到他，这是"hello"的存储空间的被垃圾回收了。对于javascript的垃圾回收，你唯一要关心的是，它一定会进行，不要对内存担心。<br />注意，javascript不提供任何的强制垃圾回收或释放内存的运算附或语句。<br />javascript的delete运算附和C++中的不同。<br /><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />var o=new Object();<br />o.name="zkj";<br />o.age=25;<br />o.bir=new Date();<br />for(var key in o){<br />document.writeln(key+':'+o[key]+'&lt;/br&gt;');<br />}<br />document.writeln('delete o.bir&lt;/br&gt;');<br />delete o.bir;<br />for(var key in o){<br />document.writeln(key+':'+o[key]+'&lt;/br&gt;');<br />}<br />&lt;/SCRIPT&gt;<br /></font><font size="6">7、作为属性的变量</font><br />猜猜以下代码会输出什么。<br /><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />var x=100;<br />document.writeln(x);<br />add(x);<br />document.writeln('&lt;/br&gt;------------------------&lt;/br&gt;');<br />var x=200;<br />document.writeln(x);<br />add(x);<br />function add(x){<br />    document.writeln(x); <br />    var x=300;<br />    document.writeln(x); <br />    var x=400;<br />    document.writeln(x);<br />}<br />&lt;/SCRIPT&gt;<br /></font>估计很多人能得出正确答案<br />100 100 300 400 <br />------------------------<br />200 200 300 400<br />但这里我想引入  全局对象和调用对象的 概念（javascript权威指南是这么翻译滴）<br /><font style="BACKGROUND-COLOR: #d3d3d3">&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />var x=100;   //我们在全局对象中加了个属性x. 对比<br /> //var o=new Object();o.x=100;<br />document.writeln(this.x);//用this访问全局对象<br />add(this.x);//把全局对象的属性值传递对函数中<br />document.writeln('&lt;/br&gt;------------------------&lt;/br&gt;');<br />this.x=200;//把全局变量中的x属性修改掉<br />document.writeln(window.x);<br />add(window.x);<br />function add(x){<br />    //假设有个局部对象，调用对象，函数调用过程中的对象<br />//  temp   temp.x=${传入的值}<br />    document.writeln(x); //哦这打印的可是参数中的值，也就是temp.x=this.x<br />//的值,<br />    var x=300;//把调用对象变量的签名给覆盖了.<br />    document.writeln(x); //打印修改过的值。 temp.x<br /> var x=400;//temp.x=400<br />    document.writeln(x);<br />}<br />&lt;/SCRIPT&gt;</font><br />在函数的调用过程中，假设有个调用对象存在，把函数的参数，和函数内的临时变量当成这个调用对象的属性。当然这个调用对象的生命周期很短。<br />注意，当我们访问全局变量的属性入x的时候，不必要用this.x 或window.x访问，当在有&lt;frame&gt;&lt;iframe&gt;的页面时会出现混淆。<br />关于函数的详细讨论我后续会详细讨论。<br /></p>
<img src ="http://www.blogjava.net/zkjbeyond/aggbug/38191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zkjbeyond/" target="_blank">原创专栏 开源学习</a> 2006-03-30 09:33 <a href="http://www.blogjava.net/zkjbeyond/archive/2006/03/30/38191.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>