﻿<?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>博客园-棕熊@Think Fast棕熊@Think Fast</title><link>http://www.cnblogs.com/ruxpinsp1/</link><description>Ya know I'm preparing to say something stupid, lol</description><language>zh-cn</language><lastBuildDate>Sat, 30 Aug 2008 13:46:56 GMT</lastBuildDate><pubDate>Sat, 30 Aug 2008 13:46:56 GMT</pubDate><ttl>60</ttl><item><title>嘿嘿，插播消息，最新一期的流言终结者</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/08/30/mythbuster_nvidia_nvision.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Sat, 30 Aug 2008 03:57:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/08/30/mythbuster_nvidia_nvision.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1280021.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/08/30/mythbuster_nvidia_nvision.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1280021.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1280021.html</trackback:ping><description><![CDATA[<p>在给nVidia 的nVision 作广告。Adam 老了很多，Jamie 还是老样子。两个人还是很恶搞 =v=</p>
<div style="margin: 0px auto;"><embed src="http://www.youtube.com/v/aa3OGgBkRiQ&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"></div>
<div style="margin: 0px auto;"><embed src="http://www.youtube.com/v/FllMX9dFmWg&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"></div>
<img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1280021.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41966/" target="_blank">[新闻]Google推出Android Market挑战App Store</a>]]></description></item><item><title>[Quicky] block 和 inline 答案揭晓~ 另付一则，关于 word-break</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/07/04/quicky-block-vs-inline-answer.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Fri, 04 Jul 2008 11:31:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/07/04/quicky-block-vs-inline-answer.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1235607.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/07/04/quicky-block-vs-inline-answer.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1235607.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1235607.html</trackback:ping><description><![CDATA[摘要: <p style="padding-right: 0pt; padding-left: 12px; float: right; padding-bottom: 12px; padding-top: 0pt"><img src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_note.png" /></p><p>上一讲的答案揭晓~ 撒花~</p><p>另外顺便讲个关于 word-break: break-all 的小 glitch</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/07/04/quicky-block-vs-inline-answer.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1235607.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41965/" target="_blank">[新闻]美国年轻人最喜欢的15大网站</a>]]></description></item><item><title>[Quicky] block 和 inline 的区别是？</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/07/03/quicky-block-vs-inline.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Thu, 03 Jul 2008 11:55:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/07/03/quicky-block-vs-inline.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1230657.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/07/03/quicky-block-vs-inline.html#Feedback</comments><slash:comments>38</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1230657.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1230657.html</trackback:ping><description><![CDATA[摘要: <p style="padding-right: 0pt; padding-left: 12px; float: right; padding-bottom: 12px; padding-top: 0pt"><img src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_note.png" /></p><p>本文从HTML, CSS 原理等多个方面详细比较分析了 block 和 inline 的概念区别和表现区别。对前台开发感兴趣的可以看看哟。</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/07/03/quicky-block-vs-inline.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1230657.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41964/" target="_blank">[新闻]2008年8月30日IT博客精选</a>]]></description></item><item><title>[教程] 谈谈网页设计中的字体应用 (4) 实战应用篇·下</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/06/26/font-in-front-end-development-4.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Thu, 26 Jun 2008 08:23:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/06/26/font-in-front-end-development-4.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1191564.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/06/26/font-in-front-end-development-4.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1191564.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1191564.html</trackback:ping><description><![CDATA[摘要: <p style="padding-right: 0pt; padding-left: 12px; float: right; padding-bottom: 12px; padding-top: 0pt"><img src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_fonts.png" /></p><p>上次我讲了在实际应用font-family时会遇到的浏览器兼容性问题。这次我要从操作系统方面来讲如何安排字体族，并给出几个实用的字体组合。另外，由于中文字体的选择范围实在太小，所以本章中设计的内容主要以西文字体为主，比较适合上一章中的“方案二”。 </p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/06/26/font-in-front-end-development-4.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1191564.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41963/" target="_blank">[新闻]《极品飞车12》最新真人照片、游戏截图</a>]]></description></item><item><title>Hiatus</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/30/1211000.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Fri, 30 May 2008 15:39:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/30/1211000.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1211000.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/30/1211000.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1211000.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1211000.html</trackback:ping><description><![CDATA[<p>最近几周工作比较忙，实在无暇照顾自己的博客。今天偶然一看，居然大家都这么热心的留言，让偶大为感动@@</p>
<p>好在该忙得都快忙得差不多了，过几天后我会继续写以前没完成的文章，并且回复大家最近的留言。在这里我谢谢大家的热心关注了~ 偷偷的说，我可是很感动的哟 <img src="http://www.cnblogs.com/Emoticons/baimantou/223332676.gif" alt="" /></p>
<img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1211000.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41962/" target="_blank">[新闻]IBM正在开发超强性能4TB固态硬盘阵列</a>]]></description></item><item><title>[教程] 谈谈网页设计中的字体应用 (3) 实战应用篇·上</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/11/font-in-front-end-development-3.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Sun, 11 May 2008 12:44:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/11/font-in-front-end-development-3.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1188807.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/11/font-in-front-end-development-3.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1188807.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1188807.html</trackback:ping><description><![CDATA[摘要: <p style="padding-right: 0pt; padding-left: 12px; float: right; padding-bottom: 12px; padding-top: 0pt"><img src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_fonts.png" /></p><p>大家有看过font set和一些要注意的基本问题以及通用字体族两篇文章后，应该对字体的基本有了一些了解。现在我们开始把这些知识都应用到实战中吧！</p><p>我会详细的说明规范中对font-family的实现，并且比较各大浏览器实际的实线效果，给出大家两个常用的字体编排方案。</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/05/11/font-in-front-end-development-3.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1188807.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41961/" target="_blank">[新闻]Microsoft F# CTP(2008年9月)</a>]]></description></item><item><title>[教程] 谈谈网页设计中的字体应用 (2) serif 和 sans-serif</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/06/font-in-front-end-development-2.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Mon, 05 May 2008 16:19:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/06/font-in-front-end-development-2.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1176593.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/06/font-in-front-end-development-2.html#Feedback</comments><slash:comments>34</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1176593.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1176593.html</trackback:ping><description><![CDATA[摘要: <p style="padding-right: 0pt; padding-left: 12px; float: right; padding-bottom: 12px; padding-top: 0pt"><img src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_fonts.png" /></p><p>上一次我们简单的谈了一下font set和一些要注意的基本问题。今天我们继续字体这一话题，深入讲讲上次提到的“<strong class="important">通用字体族</strong>”。首先是最常用的  serif 和 sans-serif 这两个通用字体族。</p><p>然后，我们会谈如何选用字体族、其他的一些字体族，以及一些有用的小知识等。</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/05/06/font-in-front-end-development-2.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1176593.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41960/" target="_blank">[新闻]微软4.86亿美元收购Greenfield</a>]]></description></item><item><title>[快报][贴图] ANSI Art 的新形式 - CSS-ANSI Art</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/03/css-ansi-art.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Fri, 02 May 2008 17:30:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/03/css-ansi-art.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1180004.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/05/03/css-ansi-art.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1180004.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1180004.html</trackback:ping><description><![CDATA[摘要: <p style="padding: 0pt 0pt 12px 12px; float: right;"><img src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_ansi.png" /></p><p>谈谈网页设计中的字体应用第二讲正在制作中，不日即可和大家见面。在此之前，先插播一条新闻。</p><p>大家如果有用各种term软件上过BBS的话，对ANSI art 和ASCII art一定不会陌生，很多大学BBS也都有ANSI版。但是，今天一种新的技术将其带到了一个不同的高度……</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/05/03/css-ansi-art.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1180004.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41959/" target="_blank">[新闻]苹果已然取代微软地位成行业众矢之的</a>]]></description></item><item><title>[教程] 谈谈网页设计中的字体应用 (1) Font Set</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/29/font-in-front-end-development-1.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Tue, 29 Apr 2008 10:27:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/29/font-in-front-end-development-1.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1172590.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/29/font-in-front-end-development-1.html#Feedback</comments><slash:comments>49</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1172590.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1172590.html</trackback:ping><description><![CDATA[摘要: <p style="padding-right: 0pt; padding-left: 12px; float: right; padding-bottom: 12px; padding-top: 0pt"><img src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_fonts.png" /></p><p>最近有不少人都提及了网页上该如何选择字体的问题。问题虽然小，但是却是前端开发中的基本，因为目前的网页，还是以文字信息为主，而字体，作为文字表现形式的最重要参数之一，自然有着相当重要的地位。可惜字体的重要性在很长时间内并没有得到足够的重视。很多人对字体的概念还是停留在 font-family: "宋体", Arial, Helvetica, serif 的阶段，却不明白为什么这样设置，这样设置是否合理等等。现在就让我说说字体的来龙去脉吧。</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/04/29/font-in-front-end-development-1.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1172590.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41958/" target="_blank">[新闻]Intel 收购 Poky Linux ,为 MID 注入新的动力</a>]]></description></item><item><title>关于本博客博皮的几点改进与释疑</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/27/1169758.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Sun, 27 Apr 2008 12:26:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/27/1169758.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1169758.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/27/1169758.html#Feedback</comments><slash:comments>59</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1169758.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1169758.html</trackback:ping><description><![CDATA[摘要: <p style="padding-right: 0pt; padding-left: 12px; float: right; padding-bottom: 12px; padding-top: 0pt"><img title="关于本博客博皮的几点改进与释疑" alt="关于本博客博皮的几点改进与释疑" src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_blogskin.png" /></p><p>偶到cnBlogs也有几天了，承蒙大家错爱，对偶的博皮提出了不少的意见。本来该早些就对大家的问题作出回复，但是想想，还不如直接优化一下，以便以最好的状态将这个博皮共享出来，给大家使用。所以隔了几天才写这篇文章，并借此机会总结一下这个博皮的优化项目，不会优化的项目以及今后的改进方向。</p><p>那么就让偶来逐一解答这几天来大家集中提出的问题</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/04/27/1169758.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1169758.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41957/" target="_blank">[新闻]雅虎将关闭社交网站Mash</a>]]></description></item><item><title>[JOKE] I like Gnus!</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/26/1172545.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Sat, 26 Apr 2008 14:09:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/26/1172545.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1172545.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/26/1172545.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1172545.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1172545.html</trackback:ping><description><![CDATA[<p>I like <a href="http://www.gnu.org/" target="_blank">gnus</a>. I also like <a href="http://www.linux.org/" target="_blank">penguins</a>, <a href="http://www.python.org/" target="_blank">pythons</a>, <a href="http://www.tortoisecvs.org/" target="_blank">tortoises</a>, <a href="http://jakarta.apache.org/tomcat/" target="_blank">tomcats</a>, <a href="http://www.apple.com/macosx/" target="_blank">tigers</a>, <a href="http://lynx.browser.org/" target="_blank">lynxes</a>, <a href="http://www.mozilla.org/products/firefox/" target="_blank">foxes</a> and of course, <a href="http://en.wikipedia.org/wiki/Computer_mouse" target="_blank">mice</a>. In fact, I like animals so much, I often go on <a href="http://www.apple.com/safari/" target="_blank">safari</a>!</p>
   <img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1172545.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41956/" target="_blank">[新闻]中国互联网战争局势图</a>]]></description></item><item><title>[浅谈 演示] 你所不知道的HTML - 从 XHTML2 到 HTML5 (1)</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/22/1164716.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Mon, 21 Apr 2008 17:41:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/22/1164716.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1164716.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/22/1164716.html#Feedback</comments><slash:comments>38</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1164716.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1164716.html</trackback:ping><description><![CDATA[摘要: <p style="float:right; padding: 0 0 12px 12px"><img src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_html.png" /></p><p>HTML5 出来其实也有很长一段时间了。因为这个那个的原因，在HTML5刚出炉时，我根本就没对它有任何重视。直到有一天突然看到某人搞了个东东，里面用到了HTML5中的一个特性——canvas，才突然意识到：“天哪！XHTML2还没站稳脚跟，就给这小子找到火柴了！” </p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/04/22/1164716.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1164716.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41955/" target="_blank">[新闻]开源多点触摸技术试运行</a>]]></description></item><item><title>[贴图] 发个自画像阿哈哈</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162878.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Sun, 20 Apr 2008 13:16:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162878.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1162878.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162878.html#Feedback</comments><slash:comments>47</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1162878.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1162878.html</trackback:ping><description><![CDATA[摘要: <p>想看的点进来看吧，摘要上就不放了，厚厚 <img src="http://www.cnblogs.com/Emoticons/tusiji/203707182.gif" /></p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162878.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1162878.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41954/" target="_blank">[新闻]国内软件外包高管集聚大连 探讨竞争与应对策略</a>]]></description></item><item><title>[图解] 你不知道的 JavaScript - “this”</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162463.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Sun, 20 Apr 2008 12:06:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162463.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1162463.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162463.html#Feedback</comments><slash:comments>47</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1162463.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1162463.html</trackback:ping><description><![CDATA[<p>JavaScript 里的 this 到底指得是什么？很多人都会告诉你 this 指的是当前对象。这样理解对么？在大多数情况下确实没错。比如我们经常会在网页上写这样的 JavaScript：</p>
<p>&nbsp;</p>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="submit"</span><span style="color: rgb(255,0,0)">&nbsp;value</span><span style="color: rgb(0,0,255)">="提交"</span><span style="color: rgb(255,0,0)">&nbsp;onclick</span><span style="color: rgb(0,0,255)">="this.value='正在提交数据'"</span><span style="color: rgb(255,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">/&gt;</span></div>
<p>&nbsp;</p>
<p>这里的this显然指的是当前对象，即这个提交按钮。通常，我们使用this的情况都与此类似。但是有什么情况不是这样的呢？</p>
<p>大家看看这个例子：</p>
<p>&nbsp;</p>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><img id="Codehighlighter1_21_44_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_21_44_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_21_44_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_21_44_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_21_44_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_21_44_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_21_44_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_21_44_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;foo&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">function</span><span style="color: rgb(0,0,0)">()&nbsp;</span><span id="Codehighlighter1_21_44_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_21_44_Open_Text"><span style="color: rgb(0,0,0)">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;console.log(</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: rgb(0,0,0)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />foo();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">new</span><span style="color: rgb(0,0,0)">&nbsp;foo();</span></div>
<p>&nbsp;</p>
<p>比较一下 foo() 和 new foo() 的运行结果，你会发现，前者 this 指向的并非 foo 本身，而是当前页面的window对象，而后者才真正的指向foo。这是为什么呢？</p>
<p>其实这牵涉到JavaScript的一条重要特性，就是所谓的&#8220;<strong class="important">闭包</strong>&#8221;。闭包这个概念说复杂也不复杂，但也不是简单到能用一两句话说清。偶会在以后的文章中深入探讨这个Javascript 最重要的特性。现在，我要告诉大家的是，因为闭包的存在，JavaScript中的<strong class="important">作用域</strong>变得相当重要。</p>
<p>所谓的<strong class="important">作用域</strong>，简单的说，就是创建一个函数时在什么环境下创建的。而this变量的值，<strong class="important">如果没有指定的话</strong>，就是函数当前的作用域。 </p>
<p>&nbsp;</p>
<p>在前面的例子里，foo() 函数是在全局作用域（这里就是window对象），所以this的值是当前的window对象。而通过 new foo() 这样的形式，其实是创建了一个foo()的副本，并在这个副本上进行的操作，所以这里的this就是foo()的这个副本。</p>
<p>&nbsp;</p>
<p>这样讲可能有点抽象，大家来看个实际的例子：</p>
<p>&nbsp;</p>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;<span style="color: rgb(255,0,0)">type<span style="color: rgb(0,0,255)">="</span></span><span style="color: rgb(0,0,255)">button"</span>&nbsp;</span><span style="color: rgb(255,0,0)">id</span><span style="color: rgb(0,0,255)">="aButton"</span><span style="color: rgb(255,0,0)">&nbsp;value</span><span style="color: rgb(0,0,255)">="demo" onclick="" /&gt;</span><span style="color: rgb(0,0,0)"><br />
<img id="Codehighlighter1_75_125_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_75_125_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_75_125_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_75_125_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_75_125_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_75_125_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_75_125_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_75_125_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="text/javascript"</span><span style="color: rgb(0,0,255)">&gt;</span><span id="Codehighlighter1_75_125_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_75_125_Open_Text"><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
<img id="Codehighlighter1_92_124_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_92_124_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_92_124_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_92_124_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_92_124_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_92_124_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_92_124_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_92_124_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">function</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;demo()&nbsp;</span><span id="Codehighlighter1_92_124_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_92_124_Open_Text"><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">this</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">.value&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;Math.random();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span></div>
<p>&nbsp;</p>
<p>如果直接调用demo()&nbsp;函数，程序就会报错，因为demo函数是在window对象中定义的，所以demo的拥有者（作用域）是window，demo的this也是window。而window是没有value属性的，所以就报错了。</p>
<p style="text-indent: 0px; text-align: center"><img title="图解" alt="图解" src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_demo1.png" /></p>
<p>如果我们通过<strong class="important">创建副本</strong>的方式，将这个函数的<strong class="very important">副本</strong>添加到一个HTML元素，那么他的所有者就成了这个元素，this也指代了这个元素：</p>
<p>&nbsp;</p>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,0)">document.getElementById(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">aButton</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">).onclick&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;demo;</span></div>
<p>&nbsp;</p>
<p>这样就将aButton的onlick属性设置为demo()的一个副本，this也指向了aButton。</p>
<p style="text-indent: 0px; text-align: center"><img title="图解" alt="图解" src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_demo2.png" /></p>
<p>你甚至可以为多个不同的HTML元素创建不同的函数副本。每个副本的拥有者都是相对应的HTML元素，各自的this也都指向他们的拥有者，不会造成混乱。</p>
<p style="text-indent: 0px; text-align: center"><img title="图解" alt="图解" src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_demo3.png" /></p>
<p>&nbsp;</p>
<p>但是，如果你这样定义某个元素的onlick事件：</p>
<p>&nbsp;</p>
<div>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="button"</span><span style="color: rgb(255,0,0)">&nbsp;id</span><span style="color: rgb(0,0,255)">="aButton"</span><span style="color: rgb(255,0,0)">&nbsp;value</span><span style="color: rgb(0,0,255)">="demo"</span><span style="color: rgb(255,0,0)">&nbsp;onclick</span><span style="color: rgb(0,0,255)">="demo()" /</span><span style="color: rgb(0,0,255)">&gt;</span></div>
</div>
<p>&nbsp;</p>
<p>点击这个button之后，你会发现，程序又会报错了——this又指向了window！</p>
<p>其实，这种方法并没有为程序创建一个函数，而只是引用了这个函数。</p>
<p>具体看一下区别吧。</p>
<p>&nbsp;</p>
<p>使用创建函数副本的方法：</p>
<p>&nbsp;</p>
<div>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="button"</span><span style="color: rgb(255,0,0)">&nbsp;id</span><span style="color: rgb(0,0,255)">="aButton"</span><span style="color: rgb(255,0,0)">&nbsp;value</span><span style="color: rgb(0,0,255)">="demo"</span><span style="color: rgb(255,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">/&gt;</span><span style="color: rgb(0,0,0)"><br />
<img id="Codehighlighter1_81_225_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_81_225_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_81_225_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_81_225_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_81_225_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_81_225_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_81_225_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_81_225_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="text/javascript"</span><span style="color: rgb(0,0,255)">&gt;</span><span id="Codehighlighter1_81_225_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_81_225_Open_Text"><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;button&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.getElementById(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">aButton</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
<img id="Codehighlighter1_147_179_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_147_179_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_147_179_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_147_179_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_147_179_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_147_179_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_147_179_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_147_179_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">function</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;demo()&nbsp;</span><span id="Codehighlighter1_147_179_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_147_179_Open_Text"><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">this</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">.value&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;Math.random();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</span></span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />button.onclick</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;demo;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />alert(button.onclick);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span></div>
</div>
<p>&nbsp;</p>
<p>得到的输出是：</p>
<p>&nbsp;</p>
<div>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><img id="Codehighlighter1_16_48_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_16_48_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_16_48_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_16_48_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_16_48_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_16_48_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_16_48_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_16_48_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: rgb(0,0,255)">function</span><span style="color: rgb(0,0,0)">&nbsp;demo()&nbsp;</span><span id="Codehighlighter1_16_48_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_16_48_Open_Text"><span style="color: rgb(0,0,0)">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.value&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;Math.random();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
</div>
<p>&nbsp;</p>
<p>使用函数引用的方法：</p>
<p>&nbsp;</p>
<div>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="button"</span><span style="color: rgb(255,0,0)">&nbsp;id</span><span style="color: rgb(0,0,255)">="aButton"</span><span style="color: rgb(255,0,0)">&nbsp;value</span><span style="color: rgb(0,0,255)">="demo"</span><span style="color: rgb(255,0,0)">&nbsp;onclick</span><span style="color: rgb(0,0,255)">="demo()"</span><span style="color: rgb(255,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">/&gt;</span><span style="color: rgb(0,0,0)"><br />
<img id="Codehighlighter1_98_220_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_98_220_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_98_220_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_98_220_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_98_220_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_98_220_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_98_220_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_98_220_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="text/javascript"</span><span style="color: rgb(0,0,255)">&gt;</span><span id="Codehighlighter1_98_220_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_98_220_Open_Text"><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">var</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;button&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;document.getElementById(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">aButton</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
<img id="Codehighlighter1_164_196_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_164_196_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_164_196_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_164_196_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_164_196_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_164_196_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_164_196_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_164_196_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">function</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;demo()&nbsp;</span><span id="Codehighlighter1_164_196_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_164_196_Open_Text"><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">this</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">.value&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;Math.random();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</span></span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />alert(button.onclick);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span></div>
</div>
<p>&nbsp;</p>
<p>得到的输出是：</p>
<p>&nbsp;</p>
<div>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,0)">function&nbsp;onclick()&nbsp;{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;demo();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />}</span></div>
</div>
<p>&nbsp;</p>
<p>这样就能看出区别了吧。函数引用的方式中，onclick事件只是直接调用demo()函数，而demo()函数的作用域仍旧是window对象，所以this仍然指向window。</p>
<p style="text-indent: 0px; text-align: center"><img title="图解" alt="图解" src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_demo4.png" /></p>
<p>&nbsp;</p>
<p>这样就又引出了一个问题：既然函数副本这么好用，为什么还需要函数引用的方法呢？答案是性能。每新建一个函数的副本，程序就会为这个函数副本分配一定的内存。而实际应用中，大多数函数并不一定会被调用，于是这部分内存就被白白浪费了。而使用函数引用的方式，程序就只会给函数的本体分配内存，而引用只分配指针，这样效率就高很多。程序员么，节约为主，恩 <img alt="" src="http://www.cnblogs.com/Emoticons/tusiji/203707182.gif" /></p>
<p>所以我们来看一个更好的解决方案：</p>
<p>&nbsp;</p>
<div>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img id="Codehighlighter1_31_83_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_31_83_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_31_83_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_31_83_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_31_83_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_31_83_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_31_83_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_31_83_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="text/javascript"</span><span style="color: rgb(0,0,255)">&gt;</span><span id="Codehighlighter1_31_83_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_31_83_Open_Text"><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
<img id="Codehighlighter1_51_82_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_51_82_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_51_82_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_51_82_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_51_82_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_51_82_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_51_82_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_51_82_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">function</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;demo(obj)&nbsp;</span><span id="Codehighlighter1_51_82_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_51_82_Open_Text"><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;obj.value&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;Math.random();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="button"</span><span style="color: rgb(255,0,0)">&nbsp;value</span><span style="color: rgb(0,0,255)">="demo"</span><span style="color: rgb(255,0,0)">&nbsp;onclick</span><span style="color: rgb(0,0,255)">="demo(this)"</span><span style="color: rgb(255,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">/&gt;</span><span style="color: rgb(0,0,0)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="button"</span><span style="color: rgb(255,0,0)">&nbsp;value</span><span style="color: rgb(0,0,255)">="demo"</span><span style="color: rgb(255,0,0)">&nbsp;onclick</span><span style="color: rgb(0,0,255)">="demo(this)"</span><span style="color: rgb(255,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">/&gt;</span><span style="color: rgb(0,0,0)"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="button"</span><span style="color: rgb(255,0,0)">&nbsp;value</span><span style="color: rgb(0,0,255)">="demo"</span><span style="color: rgb(255,0,0)">&nbsp;onclick</span><span style="color: rgb(0,0,255)">="demo(this)"</span><span style="color: rgb(255,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">/&gt;</span></div>
</div>
<p>&nbsp;</p>
<p>这样，效率和需求就都能兼顾了。</p>
<p>&nbsp;</p>
<p>最后再多讲一句：在前面的文章里，我特别强调了&#8220;如果没有指定this的话&#8221;。其实<strong class="very important">this是可以指定的</strong>。Function对象有两个方法：call()和apply()。这两个方法都支持指定一个函数中的this。有兴趣的话您可以去查一下Javascript的手册，看看这两个函数都是干什么用的。而我们经常用的 new foo() 可以用以下这段伪代码来描述：</p>
<p>&nbsp;</p>
<div>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img id="Codehighlighter1_28_219_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_28_219_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_28_219_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_28_219_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_28_219_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_28_219_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_28_219_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_28_219_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: rgb(0,0,255)">function</span><span style="color: rgb(0,0,0)">&nbsp;new&nbsp;(somefunction)&nbsp;</span><span id="Codehighlighter1_28_219_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_28_219_Open_Text"><span style="color: rgb(0,0,0)">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">var</span><span style="color: rgb(0,0,0)">&nbsp;args&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;[].slice.call(arguments,&nbsp;</span><span style="color: rgb(0,0,0)">1</span><span style="color: rgb(0,0,0)">);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;somefunction.prototype.constructor&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;somefunction;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;somefunction.apply(somefunction.prototype,&nbsp;args);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">return</span><span style="color: rgb(0,0,0)">&nbsp;somefunction.prototype;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
</div>
<p>&nbsp;</p>
<p>现在明白了，在本文开头的第一个例子里，new foo() 的 this 为什么是 foo 了吧 <img alt="" src="http://www.cnblogs.com/Emoticons/tusiji/203330868.gif" /></p>
<p>&nbsp;</p>
<p>文中部分内容引自 http://www.quirksmode.org/js/this.html</p><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1162463.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41954/" target="_blank">[新闻]国内软件外包高管集聚大连 探讨竞争与应对策略</a>]]></description></item><item><title>[贴图] Noir Theater</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/19/1161312.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Sat, 19 Apr 2008 10:45:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/19/1161312.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1161312.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/19/1161312.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1161312.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1161312.html</trackback:ping><description><![CDATA[摘要: <p style="float:right"><img src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_frank.png"/></p><p>事先声明：图片有版权，无端转载禁</p><p>《Noir Theater》是偶最近关注中的新漫画，noir 风格的漫画。画家和作者都是西班牙人，画家还是偶的好友。因为剧本写得很好，画家也是牛人一个，所以有打理赶超同类漫画《Blacksad》的势头。</p><p>贴图前先说说这个Blacksad。也是一个西班牙作家+一个西班牙画家，画的 noir 风格漫画。剧情设定在二战后的芝加哥，围绕着退伍老兵、现私家侦探的John Blacksad 展开的故事...</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/04/19/1161312.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1161312.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41953/" target="_blank">[新闻]Mac OS X 10.5.5 Build 9F23 测试版和 Safari 4 预览版</a>]]></description></item><item><title>让你的网页支持 iPhone SpringBoard 图标</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/18/1160494.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Fri, 18 Apr 2008 14:49:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/18/1160494.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1160494.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/18/1160494.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1160494.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1160494.html</trackback:ping><description><![CDATA[摘要: <p style="float: right"><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/ruxpinsp1/132244/o_touch.png" /></p><p>最近搞了个iPod Touch, 挺不错的。</p><p>iPod Touch 里有一个功能：除了能将网页添加到收藏夹外，还能选择将网页的快捷方式添加到 SpringBoard, 并且将这张网页的截图作为快捷方式的图标显示。</p><p>这里面有个小窍门。Apple 的 iPhone 开发手册上说，这个图标是可以定制的，实现起来也很简单。</p>&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/04/18/1160494.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1160494.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41952/" target="_blank">[新闻]十月上市 Google手机HTC Dream官方图现</a>]]></description></item><item><title>稍微谈一下 javascript 开发中的 MVC 模式</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/17/1158140.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Thu, 17 Apr 2008 15:11:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/17/1158140.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1158140.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/17/1158140.html#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1158140.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1158140.html</trackback:ping><description><![CDATA[摘要: 随着前台开发日益受到重视，客户端代码比重日益增加的今天，如何在javascript开发里应用MVC模式，这个问题似乎会一直被提到，所以偶在这里粗略的谈一下自己的看法吧。MVC模式的基本理念，是通过把一个application封装成model, view和controller三个部分达到降低耦合，简化开发的目的。这么说很空洞，大家可以实际看个例子：1&lt;selectid="selAnimal"&&nbsp;&nbsp;<a href='http://www.cnblogs.com/ruxpinsp1/archive/2008/04/17/1158140.html'>阅读全文</a><img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1158140.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41951/" target="_blank">[新闻]2008年8月29日IT博客精选</a>]]></description></item><item><title>Say "Hello World" to cnBlogs</title><link>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/16/1156256.html</link><dc:creator>棕熊</dc:creator><author>棕熊</author><pubDate>Wed, 16 Apr 2008 09:11:00 GMT</pubDate><guid>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/16/1156256.html</guid><wfw:comment>http://www.cnblogs.com/ruxpinsp1/comments/1156256.html</wfw:comment><comments>http://www.cnblogs.com/ruxpinsp1/archive/2008/04/16/1156256.html#Feedback</comments><slash:comments>31</slash:comments><wfw:commentRss>http://www.cnblogs.com/ruxpinsp1/comments/commentRss/1156256.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ruxpinsp1/services/trackbacks/1156256.html</trackback:ping><description><![CDATA[<p>Hihi, 大家好~</p>
<p>本人棕熊，经Dflying gg 和老赵 gg 介绍，发现了cnBlogs这样有趣的地方，于是也特地来注册了一个账户，一来方便学习其他人的经验，二来也能把偶的心得告诉大家，酱紫。</p>
<p>偶的专项是front-end developing, 现在正和Dflying gg, 老赵 gg 合作开发一个项目，专职负责前端代码的开发。所以偶的blog也会以讨论front-end的技术为主，不论是初学级的，还是进阶的应用，只要有需要，都会涉及一些。权且在这里打个小广告，大家有兴趣的可以点导航栏上的&#8220;订阅&#8221;按钮。至于这个按钮什么作用，大家点了试试看就知道了<img src="http://www.cnblogs.com/Emoticons/baimantou/105104147.gif" alt="" /></p>
<p>&nbsp;</p>
<p>好吧，言归正传，既然是开发人员，那么就给cnBlogs一个小小的 hello world 程序做见面礼吧！</p>
<p>这个想法是在偶定制blog时想到的。希望能做一个漫画的comic bubble 的效果，让标题上的人物每隔一定时间就说一句搞笑的对话。这些对话的数据保存在偶的另一个网站上，而且这个网站上已经有了相应的web service，这里所要做的只是向这个service发出请求，然后把请求的结果在页面中显示。</p>
<p>通常要实现这种功能，一般会想到的解决方法是使用AJAX。但因为安全性沙盒的问题，<strong class="important">一般浏览器都会禁止跨域的XMLHttpRequest</strong>。不过没关系啦，这个问题已经有很多成熟的解决方案。这里我使用的，是所谓的<strong class="important">on-demand 方法</strong>。这个方法的核心是<strong class="very important">利用动态生成的SCRIPT元素代替XHR</strong>，来实现对跨域web service的调用。</p>
<p>&nbsp;</p>
<p>以偶blog上的comic bubble为例：</p>
<p>&nbsp;</p>
<dl>
<dt>- 需求</dt>
<dd>
<ul>
    <li>从 ruxpinsp1.cnblogs.com 访问 mywebsite.com 上的 "GetFunnyWords" service</li>
</ul>
</dd>
</dl>
<dl>
<p>&nbsp;</p>
<dt>- 解决方法</dt>
<dd>
<ul>
    <li>首先，在 ruxpinsp1.cnblogs.com 的HTML代码里加上这么个东东：
    <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
    <br />
    Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
    http://www.CodeHighlighter.com/<br />
    <br />
    --><span style="color: #008080;">1</span><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">span&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="scriptH"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">span</span><span style="color: #0000ff;">&gt;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;这个东东是用来盛放动态生成脚本的容器&nbsp;</span><span style="color: #008000;">--&gt;</span></div>
    </li>
    <li>然后，我们需要一堆javascript脚本
    <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
    <br />
    Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
    http://www.CodeHighlighter.com/<br />
    <br />
    --><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;setWords&nbsp;方法将&nbsp;GetFunnyWords&nbsp;服务返回的对话显示在页面中</span><span style="color: #008000;"><br />
    <img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" alt="" align="top" />//</span><span style="color: #008000;">&nbsp;@param&nbsp;r::String&nbsp;这个就是返回的对话</span><span style="color: #008000;"><br />
    <img id="Codehighlighter1_101_154_Open_Image" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_101_154_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_101_154_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_101_154_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_101_154_Closed_Image" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_101_154_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_101_154_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_101_154_Open_Text').style.display='inline';" alt="" align="top" /></span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;setWords&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(r)&nbsp;</span><span id="Codehighlighter1_101_154_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_101_154_Open_Text"><span style="color: #000000;">{document.getElementById(</span><span style="color: #000000;">'</span><span style="color: #000000;">randomWords</span><span style="color: #000000;">'</span><span style="color: #000000;">).innerHTML</span><span style="color: #000000;">=</span><span style="color: #000000;">r;}</span></span><span style="color: #000000;">;<br />
    <img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" alt="" align="top" /><br />
    <img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;requestFunnyWords&nbsp;通过新建一个SCRIPT元素，并设置其SRC属性，达到调用&nbsp;GetFunnyWords&nbsp;服务的目的</span><span style="color: #008000;"><br />
    <img id="Codehighlighter1_262_433_Open_Image" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_262_433_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_262_433_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_262_433_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_262_433_Closed_Image" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_262_433_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_262_433_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_262_433_Open_Text').style.display='inline';" alt="" align="top" /></span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;requestFunnyWords&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">function</span><span style="color: #000000;">()</span><span id="Codehighlighter1_262_433_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_262_433_Open_Text"><span style="color: #000000;">{<br />
    <img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;s</span><span style="color: #000000;">=</span><span style="color: #000000;">document.createElement(</span><span style="color: #000000;">'</span><span style="color: #000000;">SCRIPT</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
    <img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;s.src</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">http://myWebsite.com/GetFunnyWords</span><span style="color: #000000;">'</span><span style="color: #000000;">;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;这个就是&nbsp;GetFunnyWords&nbsp;服务的&nbsp;URL</span><span style="color: #008000;"><br />
    <img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(</span><span style="color: #000000;">'</span><span style="color: #000000;">scriptH</span><span style="color: #000000;">'</span><span style="color: #000000;">).appendChild(s);<br />
    <img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />}</span></span><span style="color: #000000;">;<br />
    </span><span style="color: #000000;">requestFunnyWords</span><span style="color: #000000;">();</span></div>
    这样，我们在cnblogs.com里要做的工作就告一段落了。
    </li>
    <li>然后我们来看看GetFunnyWords的返回吧
    <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
    <br />
    Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
    http://www.CodeHighlighter.com/<br />
    <br />
    --><span style="color: #008080;">1</span><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #000000;">setWords(</span><span style="color: #000000;">"</span><span style="color: #000000;">Hello&nbsp;World!</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span></div>
    好玩的地方就在这里：GetFunnyWords的返回的返回本身正是一个javascript, 而这个javascript中，调用了我们在cnblogs.com里定义的setWords()方法，并通过这个方法，动态的设置了comic bubble里的内容。
    </li>
</ul>
</dd>
</dl>
<p>&nbsp;</p>
<p>这个方法并不是很困难吧。要注意的是，偶新建了一个SPAN元素用来放置动态生成的SCRIPT元素，而并没有把这个SCRIPT元素直接appendChild到BODY元素上。有兴趣的话大家可以考虑一下这是为什么，呵呵</p>
<img src ="http://www.cnblogs.com/ruxpinsp1/aggbug/1156256.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41950/" target="_blank">[新闻]微软在华布局农村手机 定位小城镇和打工者</a>]]></description></item></channel></rss>