<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_一醉而过</title><subtitle type="text">一个二手的前端开发(千万别和我讨论javascript,求你了！)</subtitle><id>http://feed.cnblogs.com/blog/u/39809/rss</id><updated>2012-02-02T07:37:54Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/39809/rss"/><entry><id>http://www.cnblogs.com/yizuierguo/articles/2335870.html</id><title type="text">[转]前端开发利器webStorm 3.0配置使用</title><summary type="text">原文在这里：豪情http://www.cnblogs.com/jikey/archive/2012/01/16/2323590.html前端开发利器webStorm 3.0配置使用超强JavaScript编辑器webstorm主题(theme)超强JavaScript编辑器WebStorm代码提示迟缓问题及其它想到的合适的工具会事半功倍，当然也得把握分寸，要不就成了会得越多干的越多的“苦力者”。编辑类软件层出不群，各有所长，各有所短。找到一个合适的还真是难。还好有webstorm的出现，最近又是3.0的新版本发布。为什么这么说呢，她与其它的编辑器有什么不同：1. 任何一个编辑器都需要保存(ct</summary><published>2012-02-02T07:38:00Z</published><updated>2012-02-02T07:38:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/articles/2335870.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/articles/2335870.html"/><content type="html">&lt;div&gt;&lt;div&gt;原文在这里：豪情&lt;div&gt;http://www.cnblogs.com/jikey/archive/2012/01/16/2323590.html&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0" href="http://www.cnblogs.com/jikey/archive/2012/01/16/2323590.html"&gt;前端开发利器webStorm 3.0配置使用&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1" href="http://www.cnblogs.com/jikey/archive/2010/12/30/1921530.html"&gt;超强JavaScript编辑器webstorm主题(theme)&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2" href="http://www.cnblogs.com/jikey/archive/2010/12/25/1916938.html"&gt;超强JavaScript编辑器WebStorm代码提示迟缓问题及其它想到的&lt;/a&gt;&lt;/div&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/jikey/webstorm-theme.png" border="0"  alt="" /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;p&gt;合适的工具会事半功倍，当然也得把握分寸，要不就成了会得越多干的越多的&amp;#8220;苦力者&amp;#8221;。&lt;br /&gt;编辑类软件层出不群，各有所长，各有所短。找到一个合适的还真是难。还好有webstorm的出现，最近又是3.0的新版本发布。为什么这么说呢，她与其它的编辑器有什么不同：&lt;br /&gt;1. 任何一个编辑器都需要保存(ctrl + s)，这是所有win平台上编辑类软件的特点，但是webstorm编辑文件右上角是没有那个熟悉的米号的。&lt;/p&gt; &lt;p&gt;换句话说，所有的操作都直接存储，这样带来的坏处就是，没有以前的米号标识，万一键盘误操作也会被立即存储。&lt;br /&gt;&lt;/p&gt; &lt;p&gt;省去了ctrl + s之后，在结合&lt;a href="http://www.cnblogs.com/jikey/archive/2011/03/21/1990530.html" target="_blank"&gt;Firefox的vim&lt;/a&gt;，基本不动鼠标就可以看到结果页面了。 &lt;br /&gt;&lt;/p&gt; &lt;p&gt;2. 任何一个编辑器只要文件关闭了就没有历史记录了，但是webstorm有。就是说，只要webstorm不关闭，你的文件随时可以返回到之前的操作，webstorm关闭重启后这些历史记录就没有了。这样的坏处也是显然的，由此带来的内存消耗也必然比较大。&lt;br /&gt;3. 任何一个编辑器，除了服务器svn之外，没有本地版本，但是webstorm提供一个本地文件修改历史记录。&lt;/p&gt; &lt;p&gt;4. 与时俱进的眼光。zencoding于2009年出现于it界，在这之后，鲜有工具直接集成到里边。webstorm 2.0之后就集成了。node.js,html5,git,cvs等 就不一一列举了。 &lt;br /&gt;&lt;/p&gt; &lt;p&gt;5. 提供的插件也是比较齐全，安装非常方便。这样带来了另外的问题，以前的eclipse是安装第三方的，webstorm貌似不能安装第三方的插件。&lt;/p&gt; &lt;p&gt;6. 可以导出当前设置：File -&amp;gt; Export setting 下面就是导入设置。 &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;其它的使用： &lt;br /&gt;&lt;/p&gt; &lt;div&gt; &lt;p&gt;1. 主题，&lt;a href="http://www.cnblogs.com/jikey/archive/2010/12/30/1921530.html" target="_blank"&gt;参照这里&lt;/a&gt;。（所需的文件下载 第4条中setting.rar即可，里边包括文章中提到的颜色配置文件）&lt;/p&gt;2. 添加VIM插件：&lt;/div&gt; &lt;div&gt;File -&amp;gt; Settings -&amp;gt; Plugins -&amp;gt; Browse repositories -&amp;gt; 搜索vim，对它单击右键Download and install，然后重启IDE就可以了。&lt;br /&gt;重 启之后，控制台会输出： &amp;#8220;8:50:07 IdeaVim: Vim keymap was successfully enabled&amp;#8221;  说明vim插件安装成功。另外在aptana2.0里边安装vim插件，真是头痛，所有的文件都支持vim模式，在.html居然不支持，郁闷。&lt;/div&gt; &lt;p&gt;这样会出现另外一个问题，我如果想用ctrl+c,ctrl+v等一些默认的快捷键，该如何呢？安装VIM之后修改Defualt ，在Main  menu -&amp;gt; Edit -&amp;gt; Copy 单击右键 Remove ctrl + Insert 只会剩下一个ctrl +  c。这样配置后，可以使用部分默认的快捷键，90%的VIM快捷键。这之后还有个问题需要注意，在webstorm重启之后，又被全局默认为vim快捷 键，需要在File -&amp;gt; Setting -&amp;gt; Keymap -&amp;gt; Keymaps 中选择Default  copy，要不然，还是全局的VIM快捷键。&lt;br /&gt;&lt;/p&gt; &lt;p&gt;3. 除了webstorm之外，此公司还提供另外一个针对phper的开发工具,phpStorm，主页上说明，phpstorm包括所有webstorm的功能。但是习惯于大括号去方法名在同一行显示，所以还得配置：&lt;/p&gt; &lt;div&gt; &lt;p&gt;File -&amp;gt; Settings -&amp;gt; code style -&amp;gt; PHP -&amp;gt; Wrapping and Braces -&amp;gt; Braces placement -&amp;gt; &lt;/p&gt; &lt;p&gt;In method declaration : End of line. &lt;br /&gt;&lt;/p&gt; &lt;div&gt; &lt;p&gt;4. zencoding由于其提供的快捷键，确实 zencoding快捷键修改：&lt;/p&gt; &lt;p&gt;File -&amp;gt; Setting -&amp;gt; Live Templates &lt;br /&gt;&lt;/p&gt; &lt;p&gt;这里边如果你修改一个没有什么特别的，但是如果要添加一个需要在下面需要类型：No applicable contexts yet. Define ，单击Define选择要添加的类型。&lt;br /&gt;&lt;/p&gt; &lt;p&gt;如何合理的修改，&lt;a href="http://www.cnblogs.com/jikey/archive/2010/01/29/1659556.html" target="_blank"&gt;参考这里&lt;/a&gt;。 &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://files.cnblogs.com/jikey/settings.rar" target="_blank"&gt;如果你对我修改后的文件设置感兴趣请点这里下载。 &lt;/a&gt;(其中就是从我的webstorm导出的setting.jar文件，包括主题，快捷键，zencoding.css等)&lt;br /&gt;&lt;/p&gt; &lt;p&gt;一次性导入：&lt;/p&gt; &lt;div&gt;导入：File -&amp;gt; Import settings...&lt;/div&gt; &lt;div&gt;下载后单独模块配置目录：win7 -&amp;gt; C:\Users\jikey(用户名)\.WebIde10\config&lt;/div&gt; &lt;p&gt;也可以一次性导出settings : File -&amp;gt; Export sttings... &lt;br /&gt;&lt;/p&gt;5. 在开发js时发现，需要ctrl + return 才能选候选项，又需要配置：&lt;/div&gt; &lt;div&gt; &lt;p&gt;File -&amp;gt; Setting -&amp;gt; Editor -&amp;gt; Code Completion -&amp;gt; Preselect the first suggestion:&lt;/p&gt; &lt;p&gt;'Smart' 改为 Always&lt;/p&gt;&lt;/div&gt; &lt;p&gt;6. 注意的地方是：Webstorm的调试是不支持中文路径中文文件名。 &lt;/p&gt;&lt;/div&gt; &lt;p&gt;以下是webstorm的快捷键说明：&lt;/p&gt; &lt;div&gt; &lt;div&gt;1.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;shift&amp;nbsp;+&amp;nbsp;n:&amp;nbsp;打开工程中的文件(类似于eclipse中的ctrl+shift+R)，目的是打开当前工程下任意目录的文件。&lt;br /&gt;2.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;j:&amp;nbsp;输出模板&lt;br /&gt;3.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;b:&amp;nbsp;跳到变量申明处&lt;br /&gt;4.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;alt&amp;nbsp;+&amp;nbsp;T:&amp;nbsp;围绕包裹代码(包括zencoding的Wrap&amp;nbsp;with&amp;nbsp;Abbreviation)&lt;br /&gt;5.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;[]:&amp;nbsp;匹配&amp;nbsp;{}[]&lt;br /&gt;6.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;F12:&amp;nbsp;可以显示当前文件的结构&amp;nbsp;&lt;br /&gt;7.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;x: 剪切(删除)行，不选中，直接剪切整个行，如果选中部分内容则剪切选中的内容&lt;br /&gt;8.&amp;nbsp;alt&amp;nbsp;+&amp;nbsp;left/right:标签切换&lt;br /&gt;9.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;r:&amp;nbsp;替换&lt;br /&gt;10.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;shift&amp;nbsp;+&amp;nbsp;up:&amp;nbsp;行移动&lt;br /&gt;11.&amp;nbsp;shift&amp;nbsp;+&amp;nbsp;alt&amp;nbsp;+&amp;nbsp;up:&amp;nbsp;块移动(if(){},while(){}语句块的移动)&lt;br /&gt;12.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;d:&amp;nbsp;行复制&lt;br /&gt;13.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;shift&amp;nbsp;+&amp;nbsp;]/[:&amp;nbsp;选中块代码&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;table&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;....&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;table&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;14.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;/&amp;nbsp;:&amp;nbsp;单行注释&lt;br /&gt;15.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;shift&amp;nbsp;+&amp;nbsp;/&amp;nbsp;:&amp;nbsp;块注释&lt;br /&gt;16.&amp;nbsp;ctrl&amp;nbsp;+&amp;nbsp;shift&amp;nbsp;+&amp;nbsp;i&amp;nbsp;:   如果是css中的class则显示当前class详细信息,如果是js则显示function的详细信息(想象一下，如果在jquery的方法上查看详细 信息，就直接可以看到实现代码了)，如果是php，那当时还是function的详细信息&lt;/div&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/jikey/ws-detail.png" alt="" width="565" border="0" height="322" /&gt;&amp;nbsp;&lt;/p&gt; &lt;div&gt;17. ctrl + '-/+': 可以折叠项目中的任何代码块，包括htm中的任意nodetype=3的元素，function,或对象直接量等等。它不是选中折叠，而是自动识别折叠。&lt;/div&gt; &lt;div&gt;18. ctrl + '.': 折叠选中的代码的代码。&lt;/div&gt; &lt;div&gt;19. shift + esc: 当前激活的任意小窗口最小化，也可以是alt + '数字键'，数字在小窗口标题栏上有显示。&lt;/div&gt; &lt;div&gt;20. alt + '7': 显示当前的函数结构。类似于eclipse中的outline的效果。试验了一下，要比aptana的给力一些，但还是不能完全显示prototype下面的方法名。&lt;/div&gt; &lt;div&gt;21. 如果是*.html页面，则在文件名下的导航栏某DOM结构上右键，可以全选当前DOM结构。&lt;/div&gt; &lt;div&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/jikey/ws-nav.png" width="462" border="0" height="103" /&gt;&lt;/div&gt;&lt;p&gt;22. 项目中添加对jQuery的支持。&lt;/p&gt;&lt;p&gt;File -&amp;gt; settings -&amp;gt; Javascript Libraries -&amp;gt; Add&lt;/p&gt;&lt;p&gt;在files中添加路径，在documentations urls中添加文档支持。这里边需要注意一下的是，要添加原始未压缩的代码，*.min.js版的方法是不会被提示。&lt;/p&gt;&lt;p&gt;添 加完成后，右边菜单中还有一 download  按钮，单击之后，他会自动选择最新版的js库进行搜索，然后在弹出的列表中，再单击选择一个后，点击Download and  Install之后，才会被下载。这块体验不是太好，没有checkbox,也没有radio，只是选中后整行变暗。&amp;nbsp;&lt;/p&gt;&lt;p&gt;如果添加多个版本的jQuery，就可以直观的看到各个版本之间新方法的差别了。&lt;/p&gt;&lt;p&gt;* 在这项的子菜单中 Usage Scope 右边 Project 第二栏Library下单击，选择新添加的jQuery，使其对整个项目进行覆盖。&lt;/p&gt;&lt;p&gt;也可以在当前页面右键Use JavaScript Library 中选择最顶的刚添加的jQuery支持。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/jikey/ws-select-jq.png" alt="" width="653" border="0" height="350" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;当然，并不是添加的越多越好，添加的多之后，在代码提示后会有数毫秒的延迟，需要谨慎选择最新版。&amp;nbsp;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;以下是jquery1.1在ws中效果，还有底下显示vim启动运行的提示，左侧显示数字标题栏名称。&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;div align="center"&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/jikey/ws-outline.png" border="0" /&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;以下vim常用快捷键：&lt;/p&gt; &lt;div&gt; &lt;div&gt;一.&amp;nbsp;移动：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h,j,k,l:&amp;nbsp;左，下，上，右。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;w:&amp;nbsp;下一个词的词首。W:下一个单词(不含标点)。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e:下一个词的词尾。E:不含标点。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b:上一个词的词首。B:不含标点。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&amp;gt;&lt;/span&gt;:&amp;nbsp;v&amp;nbsp;模式选中后进行缩进。&lt;br /&gt;二.&amp;nbsp;跳转：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%:&amp;nbsp;可以匹配{},"",(),[]之间跳转。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;H、M、L：直接跳转到当前屏幕的顶部、中部、底部。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#H：跳转到当前屏的第#行。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#L：跳转到当前屏的倒数第#行。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zt:&amp;nbsp;当前编辑行置为屏顶。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zz:&amp;nbsp;当前编辑行置为屏中。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zb:&amp;nbsp;当前编辑行置为屏底。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;G：直接跳转到文件的底部。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gg:&amp;nbsp;跳转到文件首。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gd:&amp;nbsp;跳转到光标所在函数和变量的定义。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;():跳转到当前的行首、行尾。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{}：向上、向下跳转到最近的空行。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[{：跳转到目前区块开头。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]}：跳转到目前区块结尾。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0:&amp;nbsp;跳转到行首。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$:&amp;nbsp;跳转到行尾。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2$:&amp;nbsp;跳转到下一行的行尾。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#：跳转到该行的第#个位置。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#G:&amp;nbsp;15G,跳转到15行。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:#：跳转到#行。&lt;br /&gt;三.&amp;nbsp;选择：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.v:&amp;nbsp;开启可视模式。&amp;nbsp;V:&amp;nbsp;开启逐行可视模式。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.^V:&amp;nbsp;矩形选择。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.v3w:&amp;nbsp;选择三个字符。&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.ab：包括括号和()内的区域。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.aB：包括括号和{}内的区域。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.ib：括号()内的区域。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7.iB：括号{}内的区域。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8.aw：标记一个单词。&lt;br /&gt;四.&amp;nbsp;编辑：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;新增：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i:&amp;nbsp;光标前插入。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I:&amp;nbsp;在当前行首插入。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a:&amp;nbsp;光标后插入。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A:&amp;nbsp;当前行尾插入。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;O:&amp;nbsp;在当前行之前插入新行。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o:&amp;nbsp;在当前行之后插入新行。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;修改&amp;nbsp;c(change)&amp;nbsp;为主：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r:&amp;nbsp;替换光标所在处的字符。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R：替换光标所到之处的字符。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cw:&amp;nbsp;更改光标所在处的字到字尾处。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c#w:&amp;nbsp;c3w&amp;nbsp;修改3个字符。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C：修改到行尾。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ci'：修改配对标点符号中的文本内容。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;di'：删除配对标点符号中的文本内容。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yi'：复制配对标点符号中的文本内容。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vi'：选中配对标点符号中的文本内容。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s：替换当前一个光标所处字符。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#S：删除&amp;nbsp;#&amp;nbsp;行，并以新文本代替。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;删除&amp;nbsp;d(delete)&amp;nbsp;为主：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;D：删除到行尾。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;X:&amp;nbsp;每按一次，删除光标所在位置的前面一个字符。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x:&amp;nbsp;每按一次，删除光标所在位置的后面一个字符。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#x:&amp;nbsp;删除光标所在位置后面6个字符。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d^:&amp;nbsp;删至行首。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d$:&amp;nbsp;删至行尾。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dd:(剪切)删除光标所在行。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dw:&amp;nbsp;删除一个单词/光标之后的单词剩余部分。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d4w:&amp;nbsp;删除4个word。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#dd:&amp;nbsp;从光标所在行开始删除#行。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;daB:&amp;nbsp;删除{}及其内的内容。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;diB:&amp;nbsp;删除{}中的内容。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n1,n2&amp;nbsp;d：将n1,n2行之间的内容删除。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp;查找：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/：&amp;nbsp;输入关键字，发现不是要找的，直接在按n，向后查找直到找到为止。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;?：&amp;nbsp;输入关键字，发现不是要找的，直接在按n，向前查找直到找到为止。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*:&amp;nbsp;在当前页向后查找同一字。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#:&amp;nbsp;在当前页向前查找同一字。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.&amp;nbsp;复制&amp;nbsp;y(yank)为主：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yw:&amp;nbsp;将光标所在之处到字尾的字符复制到缓冲区中。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#yw:&amp;nbsp;复制#个字到缓冲区。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Y：相当于yy,&amp;nbsp;复制整行。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#yy:表示复制从光标所在的该行往下数#行文字。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p:&amp;nbsp;粘贴。所有与y相关的操作必用p来结合粘贴。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]p：粘贴到合适的缩进处。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n1,n2&amp;nbsp;co&amp;nbsp;n3：复制第n1行到第n2行之间的内容到第n3行后面。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.&amp;nbsp;大小写转换：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gUU:&amp;nbsp;将当前行的字母改为大写。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;guu:&amp;nbsp;将当前行的字母改为小写。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gUw:&amp;nbsp;将当前光标下的单词改为大写。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;guw:&amp;nbsp;将当前光标下的单词改为小写。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.&amp;nbsp;整篇大写:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ggguG&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gg:&amp;nbsp;光标到文件第一个字符。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gu:&amp;nbsp;把选择范围全部小写。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;G:&amp;nbsp;到文件结束。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b.&amp;nbsp;整篇小写：gggUG&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7.&amp;nbsp;&amp;nbsp;其它：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;J：当前行和下一行合并成一行。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8.&amp;nbsp;&amp;nbsp;移动：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n1,n2&amp;nbsp;m&amp;nbsp;n3：将n1行到n2行之间的内容移至n3行下。&lt;/div&gt;&lt;/div&gt; &lt;p&gt;这样几番配置认识：&lt;/p&gt; &lt;p&gt;1. 在javascript方面比aptana更接近于当前的流行开发趋势。&lt;/p&gt; &lt;p&gt;2. 在html,css上比dreamweaver更大胆，更有洞察力。&lt;/p&gt; &lt;p&gt;3. 在php上比zendstudio更带有一点英雄主义色彩。&lt;/p&gt; &lt;p&gt;4. 在java上，此公司提供另外一款工具：&lt;a href="http://www.jetbrains.com/idea/" target="_blank"&gt;IntelliJ IDEA &lt;/a&gt;&lt;/p&gt; &lt;p&gt;可以看出纯英文的界面，多如牛毛的快捷键，不推荐新手使用。太方便就会容易培养惰性，而惰性是开发人员的大敌。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;最后感谢火爷，是火爷教会我使用webstorm。火爷一直是走在技术前沿的pyer. &lt;/p&gt; &lt;p&gt;&lt;/p&gt; 欢迎转载，但是必须保留本文的署名&lt;a href="http://jikey.cnblogs.com/"&gt;豪情&lt;/a&gt;（包含链接）&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/2335870.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/articles/2335870.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yizuierguo/archive/2010/10/27/1862023.html</id><title type="text">[转]display:inline-block的深入理解</title><summary type="text">说明：display:inline-block之前一直没有好好研究,这几天接连遇到这样类似的BUG，于是研究下,网上的主要资料来自圆心的这篇文章《display:inline-block的深入理解》，不过读这篇文章之前最好先读一下《on having layout》对layout有一个深入的了解, 一年后圆心又写了《模拟兼容性的inline-block属性》一文，与此同时口碑网的秦歌也写了《inl...</summary><published>2010-10-26T16:05:00Z</published><updated>2010-10-26T16:05:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/archive/2010/10/27/1862023.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/archive/2010/10/27/1862023.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 14pt; font-family: Arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;说明：display:inline-block之前一直没有好好研究,这几天接连遇到这样类似的BUG，于是研究下,网上的主要资料来自&lt;a href="http://www.planabc.net/"&gt;圆心&lt;/a&gt;的这篇文章&lt;a href="http://www.planabc.net/2007/03/11/display_inline-block/"&gt;《display:inline-block的深入理解》&lt;/a&gt;，不过读这篇文章之前最好先读一下&lt;a href="http://bbs.blueidea.com/viewthread.php?tid=2636904"&gt;《on having layout》&lt;/a&gt;对layout有一个深入的了解, 一年后圆心又写了&lt;a href="http://www.planabc.net/2008/04/08/cross_browser_support_for_inline-block_styling/"&gt;《模拟兼容性的inline-block属性》&lt;/a&gt;一文，与此同时口碑网的&lt;a href="http://dancewithnet.com/"&gt;秦歌&lt;/a&gt;也写了&lt;a href="http://dancewithnet.com/2008/04/05/examples-of-display-inline-block/"&gt;《inline-block的应用两例》&lt;/a&gt;。全网的资料基本上就是这些！&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt; 			&lt;p&gt;在使用 CSS 实现表现的时候，会经常接触到 display:inline-block 这一属性，无论是初接触 Web 标准还是接触标准已久的朋友，大都会对这一属性感觉很迷惑和模糊。&lt;br /&gt; display:inline-block&lt;/p&gt; &lt;p&gt;将对象呈递为内联对象，但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内，允许空格。&lt;/p&gt; &lt;p&gt;但对于这个属性不是所有浏览器都识别。&lt;/p&gt; &lt;p&gt;支持的浏览器有：Opera、Safari。&lt;/p&gt; &lt;p&gt;但很遗憾，最流行的 IE 和 Firefox 却不支持这个属性（在 Firefox3 版本中将会支持  display:inline-block）。不过 Firefox 下却有私有属性 -moz-inline-box 和inline-block  形似，为什么是&amp;#8220;形似&amp;#8221;而不是&amp;#8220;神似&amp;#8221;呢？这是因为使用 -moz-inline-box  会带来很多意想不到的后遗症，比如使用这一属性后，text-align 有时候就会有问题，还得改用 Firefox 的私有属性  -moz-box-align 来解决（谢谢 &lt;a href="http://www.aoao.org.cn/" target="_blank"&gt;aoao&lt;/a&gt; 提供案例）。&lt;/p&gt; &lt;p&gt;建议：最好不要使用 Firefox 私有属性 -moz-inline-box。&lt;/p&gt; &lt;p&gt;或许有朋友会对上面所说的 IE 也不支持 display:inline-block 属性，表示疑问或者反对。说：&amp;#8220;我在 IE 中对 a 或者 span 等内联元素使用 display:inline-block 一直是有效的&amp;#8221;。&lt;/p&gt; &lt;p&gt;其实不然，在IE中对内联元素使用 display:inline-block，IE 是不识别的，但使用 display:inline-block 在 IE 下会触发 layout（如果你对 layout 感觉到陌生，可以参看 &lt;a href="http://old9.blogsome.com/" target="_blank"&gt;old9&lt;/a&gt; 翻译的&lt;a href="http://old9.blogsome.com/2006/04/11/onhavinglayout/" target="_blank"&gt;《On having layout》&lt;/a&gt;）， 从而使内联元素拥有了display:inline-block 属性的表症。从上面的这个分析，也不难理解为什么 IE 下，对块元素设置  display:inline-block 属性无法实现 inline-block 的效果。这时块元素仅仅是被  display:inline-block 触发了 layout，而它本就是行布局，所以触发后，块元素依然还是行布局，而不会如 Opera  中块元素呈递为内联对象。&lt;/p&gt; &lt;p&gt;延伸一个问题：IE下块元素如何实现 display:inline-block 的效果？&lt;/p&gt; &lt;p&gt;有两种方法：&lt;/p&gt; &lt;p&gt;1、先使用 display:inline-block 属性触发块元素，然后再定义  display:inline，让块元素呈递为内联对象（两个display 要先后放在两个 CSS 声明中才有效果，这是 IE 的一个经典 bug  ，如果先定义了 display:inline-block，然后再将 display 设回 inline 或 block，layout  不会消失）。代码如下（&amp;#8230;为省略的其他属性内容）：&lt;/p&gt; &lt;pre&gt;&lt;code&gt;div {display:inline-block;...}&lt;br /&gt;div {display:inline;}&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;2、直接让块元素设置为内联对象呈递（设置属性 display:inline），然后触发块元素的 layout（如：zoom:1 等）。代码如下：&lt;/p&gt; &lt;pre&gt;&lt;code&gt;div {display:inline; zoom:1;...}&lt;/code&gt;&lt;/pre&gt;  					&lt;/div&gt; 			 		&lt;p alt=""&gt;这篇文章发表2007年3月11日 下午 14:45，并被分类于&lt;a href="http://www.planabc.net/category/html-css-xml-xsl/" title="查看 HTML/CSS/XML/XSL 的全部文章" rel="category tag"&gt;HTML/CSS/XML/XSL&lt;/a&gt;，已被 32990 人阅读。  			您可以通过订阅 &lt;a href="http://www.planabc.net/2007/03/11/display_inline-block/feed/"&gt;RSS 2.0&lt;/a&gt;  跟踪对这篇文章的评论， 							也可以&lt;a href="http://www.planabc.net/2007/03/11/display_inline-block/#respond"&gt;发表您的评论&lt;/a&gt;，或者在您自己的网站中 &lt;a href="http://www.planabc.net/2007/03/11/display_inline-block/trackback/" rel="trackback"&gt;引用（trackback）&lt;/a&gt; 该篇日志。  					&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;扩展阅读： &lt;br /&gt;&lt;/p&gt; 		&lt;div id="relatedPost"&gt; 			&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.planabc.net/2008/04/08/cross_browser_support_for_inline-block_styling/" title="模拟兼容性的 inline-block 属性"&gt;模拟兼容性的 inline-block 属性&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ued.koubei.com/?p=229"&gt;inline-block从入门到精通&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://foohack.com/2007/11/cross-browser-support-for-inline-block-styling/" target="_blank" title="Cross Browser Support for inline-block Styling"&gt;《Cross Browser Support for inline-block Styling》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.12sui.cn/develop/displayinline-block/"&gt;display:inline-block&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.99css.com/?p=23"&gt;说说display:inline-block&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;		&lt;/div&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;a title="圆心" href="http://www.planabc.net/"&gt;&lt;span style="font-size: 14pt; font-family: Arial;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/1862023.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/archive/2010/10/27/1862023.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yizuierguo/archive/2010/10/24/1859914.html</id><title type="text">母亲</title><summary type="text">当我写这些文字的时候，刚得知母亲老病复发，在医院住院，连日来的很多思绪一股脑的朝我奔袭过来!母亲是个勤劳的人,尽管勤劳是中国所有母亲最基本的特质，但无疑我的母亲比所有的母亲还要更勤劳一些.家在农村，为了供我读高中和大学，父亲在外打工，家里生活的重担，全部压在了母亲一个人身上，农忙季节，别人家都是多个劳力，而我们家却只有母亲一个人，母亲的坚强，是我到现在为止也想不到的， 地里的农活，家里的牲畜，都需...</summary><published>2010-10-24T13:57:00Z</published><updated>2010-10-24T13:57:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/archive/2010/10/24/1859914.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/archive/2010/10/24/1859914.html"/><content type="html">&lt;p&gt;当我写这些文字的时候，刚得知母亲老病复发，在医院住院，连日来的很多思绪一股脑的朝我奔袭过来!&lt;/p&gt;&lt;p&gt;母亲是个勤劳的人,尽管勤劳是中国所有母亲最基本的特质，但无疑我的母亲比所有的母亲还要更勤劳一些.&lt;/p&gt;&lt;p&gt;家在农村，为了供我读高中和大学，父亲在外打工，家里生活的重担，全部压在了母亲一个人身上，农忙季节，别人家都是多个劳力，而我们家却只有母亲一个人，母亲的坚强，是我到现在为止也想不到的， 地里的农活，家里的牲畜，都需要她忙.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;妈妈的老毛病是滑膜炎，这是一种由于长期积劳成疾而成的病， 痛的时候根本不能走路，治疗的时候需要往骨缝了扎针，母亲是这样说的......&lt;br /&gt;&lt;/p&gt;&lt;p&gt;母亲是个乐观的人，她知道我工作忙，而且有失眠的毛病，所以一般都不会跟我说，每次都是闪烁其词，知道我再三追问才会说......&lt;/p&gt;&lt;p&gt;大学那会，我真的很傻，真的不懂得家里的苦衷，现在回想起来真的很惭愧， 毕业之后在一年一次的春节回家中，我感受到了，母亲真的年岁大了，真的被累到了，很多疾病也慢慢的来了，她走路的速度好像慢慢的慢了，做的饭菜也不再那么可口，头上也有白发长出......&lt;br /&gt;&lt;/p&gt;&lt;p&gt;是啊，母亲老了。&lt;/p&gt;&lt;p&gt;如果我能在她身边照顾她，在她躺在病床上的时候倒杯水.....&lt;/p&gt;&lt;p&gt;可是，儿子远在浙江，不能亲临身边，只能努力工作，早日回到你的身边。&lt;/p&gt;&lt;p&gt;我不是伟大的文学家，写不出优美感人的文字，但是人人都有母亲，有一种爱你我都能体会，谨以此文献给母亲，祝愿她早日康复! &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/1859914.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/archive/2010/10/24/1859914.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yizuierguo/archive/2010/10/18/1854691.html</id><title type="text">9月前端tips</title><summary type="text">9.1 - 9.3126.【Mobile】iPhone/Android 如何去掉超链接点击高亮的边框?	dom.ontouchstart = function(){		return false;	}即可去除（王卓）127.【JS】计时器在OS上，浏览器的最小延时时间为10ms，在windows上为15ms。我们可以通过为计时器提供0（或任何10ms以下的任何数值）作为延时时间得到这个值。（圆心）1...</summary><published>2010-10-18T10:00:00Z</published><updated>2010-10-18T10:00:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/archive/2010/10/18/1854691.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/archive/2010/10/18/1854691.html"/><content type="html">&lt;span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" &gt;&lt;span style="line-height: 24px; font-family: Arial, 瀹嬩綋, Verdana, sans-serif; color: rgb(64,64,64); font-size: 16px" &gt;&lt;pre style="border-bottom: rgb(226,226,255) 1px solid; border-left: rgb(226,226,255) 1px solid; padding-bottom: 5px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(248,248,248); padding-left: 5px; width: 888px; padding-right: 5px; white-space: pre-wrap; margin-bottom: 10px; border-top: rgb(226,226,255) 1px solid; border-right: rgb(226,226,255) 1px solid; padding-top: 5px; background-origin: initial; background-clip: initial"&gt;&lt;strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"&gt;9.1 - 9.3&lt;/strong&gt;&#xD;
&#xD;
126.【Mobile】iPhone/Android 如何去掉超链接点击高亮的边框?&#xD;
	dom.ontouchstart = function(){&#xD;
		return false;&#xD;
	}&#xD;
即可去除（王卓）&#xD;
&#xD;
127.【JS】计时器在OS上，浏览器的最小延时时间为10ms，在windows上为15ms。我们可以通过为计时器提供0（或任何10ms以下的任何数值）作为延时时间得到这个值。（圆心）&#xD;
&#xD;
128.【JS】setTimeout可以改变调用栈的顺序：&#xD;
&#xD;
	alert(1);&#xD;
	setTimeout(function (){&#xD;
	   alert(2)&#xD;
	},0);&#xD;
	alert(3);&#xD;
	alert(4);&#xD;
	//执行顺序 1 -&amp;gt; 3 -&amp;gt; 4 -&amp;gt; 2 &#xD;
&#xD;
相关延伸阅读: http://ejohn.org/blog/how-javascript-timers-work/ （龙刚）&#xD;
&#xD;
&lt;strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"&gt;9.6 - 9.10&lt;/strong&gt;&#xD;
&#xD;
129.【JS】在创建img时，src不要设置为空或者#，否则会对页面再次发生请求，建议设置为about:blank;。&#xD;
&#xD;
130.【JS】typeof 某一个 string 可能出来 object 或是 string，视其创建方式。（法海）&#xD;
&#xD;
131.【JS】几种国产浏览器的 UA 信息：https://spreadsheets.google.com/ccc?key=0AjjyN0rjIwrydGx1b2QyVkdlNjBfY2VEckFhTXJmTXc&amp;amp;hl=zh_CN#gid=0 （子涯）&#xD;
&#xD;
132.【JS】逻辑运算符&amp;amp;&amp;amp;和||的&amp;#8220;短路&amp;#8221;原理，如&amp;amp;&amp;amp;中第一个表达式为假就不会去处理第二个表达式，而||正好相反。在js中有意思的是它们的返回值：&#xD;
	例：var attr = true &amp;amp;&amp;amp; 4 &amp;amp;&amp;amp; &amp;#8220;aaa&amp;#8221;;那么运行的结果attr就不是简单的true或这false，而是&amp;#8221;aaa&amp;#8221; 。&#xD;
	例：var Yahoo = Yahoo || {};经常用来判断一个变量是否已定义，如果没有定义就给他一个初始值。&#xD;
	那么，可以这样优化代码：&#xD;
	if(a &amp;gt;=5){alert("你好");}&#xD;
	可以写成：&#xD;
	a &amp;gt;= 5 &amp;amp;&amp;amp; alert("你好");&#xD;
注：js中||和&amp;amp;&amp;amp;的特性帮我们精简了代码的同时，也带来了代码可读性的降低。需要我们自己来权衡了！（涵宇）&#xD;
&#xD;
133.【JS】字面量 string 不以对象实现，作为 16 位无符号整数存储，当局称这么做的目的是为了&amp;#8220;简单高效&amp;#8221;。（法海）&#xD;
&#xD;
&lt;strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"&gt;9.13 - 9.17&lt;/strong&gt;&#xD;
&#xD;
134.【JS】var x = "this is string..."; var y = ["this","is","string"]; x与y不同之处在于类型，javascript的解析器把字符串直接赋值（其实就是copy）给x（直接量），却把数组的指针赋给y（引用量）。（涵宇）&#xD;
&#xD;
135.【JS】对一个字符串使用replace方法的时候，用正则模式可以替换掉字符串里面的全部子字符串，用字符串模式则只做一次匹配,只替换第一个匹配，&#xD;
	var aa = "{}{}{}";&#xD;
	Var cc = aa.replace("{","LEFTQUOTE");//只做一次匹配&#xD;
	console.log(cc);&#xD;
	var bb = "{}{}{}";&#xD;
	Cc = bb.replace(/{/g,"LEFTQUOTE");//可做全部的替换&#xD;
	console.log(cc);&#xD;
（乔福）&#xD;
&#xD;
136.&#xD;
&#xD;
137.【JS】&amp;#8220;+&amp;#8221;运算符的所谓&amp;#8220;重载&amp;#8221;，其实只是同一个算法内部的不同分支。（法海）&#xD;
&#xD;
138.【CSS】p是block_level元素,没有其他的块级元素可以牵入到p里,因为在P元素中遇到块级元素后会立即闭合P元素；如：&amp;lt;p&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/p&amp;gt;会被解析成&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;。（涵宇）&#xD;
&#xD;
&lt;strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"&gt;9.19 - 9.21&lt;/strong&gt;&#xD;
&#xD;
139.【JS】&amp;#8220;+&amp;#8221;运算符进入&amp;#8220;串连接&amp;#8221;操作的分支后，调用左运算元（转换成 String 对象后）的 Concatenate 方法，这意味着返回的是对象（运算元均为数字时，将调用另外的方法，不返回对象）。（法海）&#xD;
&#xD;
140.【JS】JavaScript不支持重载，在JavaScript中，脚本在执行时不会顾及函数定义时的参数，而是直接使用在作用域链中最后定义的那个函数。这意味着，相同 名称的函数永远只存在一个实例。（涵宇）&#xD;
&#xD;
141.【CSS】在 IE67 中，hr 默认有上下 14px 的 margin，同时不能消除。使用 float 清除上边距，负边距清除下边距。（法海）&#xD;
&#xD;
&lt;strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"&gt;9.25 - 9.30&lt;/strong&gt;&#xD;
&#xD;
142.【HTML】创建复杂的HTML标签或是多层的嵌套标签时，可以选择使用DocumentFragment机制，它可以提供一个缓冲的机制，将DOM节点先放到内存中，当节点都构 造完成后，再将DocumentFragment对象添加到页面中，这时所有的节点都会一次渲染出来，能减少浏览器很多的负担，明显的提高页面渲染速度。（涵宇）&#xD;
&#xD;
143.【HTML】关于 HTML5 表单验证的文章：http://www.alistapart.com/articles/forward-thinking-form-validation/&#xD;
&#xD;
144.【JS】将函数的引用作为参数传递到setTimeout()和setInterval()里优于将函数名作为字符串参数传递（硬编码）。例如，setTimeout(&amp;#8221;someFunc()&amp;#8221;, 1000)执行效率慢于setTimeout(someFunc, 1000)。（涵宇）&#xD;
&#xD;
145.【JS】对于简单的任务，最好使用基本操作方式来实现，而不是使用函数调用实现。例如val1 &amp;lt; val2 ?  val1 : val2;执行速度快于Math.min(val1, val2);，类似的，myArr.push(newEle);慢于myArr[myArr.length] = newEle;（涵宇）&#xD;
&#xD;
146.【JS】ie下非表单链接元素在触发click事件的时候，focus事件也会被触发，非ie不会触发。（龙藏）&#xD;
&#xD;
147.【浏览器】当发出的请求未收到response时，刷新页面，firefox和chrome会自动中断请求，而IE不会，所以在模拟长连接时多次刷新页面就会因为积累太多请求而遇到IE并发请求数的瓶颈，需要在触发beforeunload事件时手动abort请求来解决。（鸣人）&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/1854691.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/archive/2010/10/18/1854691.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yizuierguo/archive/2010/10/18/1854672.html</id><title type="text">[转]通过ECMA-262-3 深入理解this关键字</title><summary type="text">申明：justin对原文作了重新整理，并对本文翻译不周和漏译的地方提出了修改意见，本文中红色部分的文字均由justin修正指出，特此声明。导言定义全局代码中的this函数代码中的this 引用类型函数调用和非引用类型引用类型和this为null作为构造器调用的函数的this手动设置一个函数调用的this 结论其他参考 导言在这篇文章中我们将讨论一个与执行上下文直接相关的更多细节。讨论的主题就是th...</summary><published>2010-10-18T09:44:00Z</published><updated>2010-10-18T09:44:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/archive/2010/10/18/1854672.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/archive/2010/10/18/1854672.html"/><content type="html">&lt;p style="padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px"&gt;&lt;strong&gt;申明：&lt;/strong&gt;&lt;a href="http://www.cnblogs.com/justinw/archive/2010/05/04/1727295.html" target="_blank"&gt;justin&lt;/a&gt;对原文作了重新整理，并对本文翻译不周和漏译的地方提出了修改意见，本文中红色部分的文字均由&lt;a href="http://www.cnblogs.com/justinw/archive/2010/05/04/1727295.html" target="_blank"&gt;justin&lt;/a&gt;修正指出，特此声明。&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;&lt;a title="Introduction" href="http://www.denisdeng.com/?p=900#introduction"&gt;导言&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Definitions" href="http://www.denisdeng.com/?p=900#definitions"&gt;定义&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="This value in the global code" href="http://www.denisdeng.com/?p=900#this-value-in-the-global-code"&gt;全局代码中的this&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="This value in the function code" href="http://www.denisdeng.com/?p=900#this-value-in-the-function-code"&gt;函数代码中的this&lt;/a&gt; &#xD;
&lt;ol&gt;&lt;li&gt;&lt;a title=" Reference type" href="http://www.denisdeng.com/?p=900#reference-type"&gt;引用类型&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Function call and non-Reference type" href="http://www.denisdeng.com/?p=900#function-call-and-non-reference-type"&gt;函数调用和非引用类型&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title=" Reference type and null this value" href="http://www.denisdeng.com/?p=900#"&gt;引用类型和this为null&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="This value in function called as the constructor" href="http://www.denisdeng.com/?p=900#this-value-in-function-called-as-the-constructor"&gt;作为构造器调用的函数的this&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Manual setting of this value for a function call" href="http://www.denisdeng.com/?p=900#manual-setting-of-this-value-for-a-function-call"&gt;手动设置一个函数调用的this&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Conclusion" href="http://www.denisdeng.com/?p=900#conclusion"&gt;结论&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title=" Additional literature" href="http://www.denisdeng.com/?p=900#additional-literature"&gt;其他参考&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p style="font-size: 15px" id="introduction"&gt;&lt;strong&gt;导言&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在这篇文章中我们将讨论一个与&lt;a href="http://dmitrysoshnikov.com/ecmascript/chapter-1-execution-contexts/" target="_blank"&gt;执行上下文&lt;/a&gt;直接相关的更多细节。讨论的主题就是this关键字。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;实践表明，这个主题很难，在不同执行上下文中this值的确定经常导致问题。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;许多程序员习惯的认为，在程序语言中，&lt;em&gt;this&lt;/em&gt;关键字与面向对象的程序紧密相关，完全指向通过构造器创建的新的对象。在ECMAScript中也是这样执行的，但正如你看到的那样，这并不限于创建对象的定义。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;让我们更详细的了解ECMAScript中真正的&lt;em&gt;this&lt;/em&gt;值是什么？&lt;/p&gt;&#xD;
&lt;p style="font-size: 15px" id="definitions"&gt;&lt;strong&gt;定义&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;this是执行上下文中的一个属性。&lt;/p&gt;&#xD;
&lt;div id="highlighter_67047" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_67047" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_67047" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_67047" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;activeExecutionContext = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;VO: {...}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;: thisValue &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;};&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;这里VO是我们前一章讨论的&lt;a href="http://dmitrysoshnikov.com/ecmascript/chapter-2-variable-object/" target="_blank"&gt;变量对象&lt;/a&gt;。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;em&gt;this&lt;/em&gt;与上下文中&lt;a href="http://dmitrysoshnikov.com/ecmascript/chapter-1-execution-contexts/#types-of-executable-code" target="_blank"&gt;可执行代码&lt;/a&gt;密切直接相关，&lt;span style="color: #f00"&gt;this值在&lt;em&gt;进入上下文时确定&lt;/em&gt;&lt;/span&gt;，代码在上下文运行期间&lt;em&gt;一成不变&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;下面让我们更详细研究这些案例&lt;/p&gt;&#xD;
&lt;p style="font-size: 15px" id="this-value-in-the-global-code"&gt;&lt;strong&gt;全局代码中的this值&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在这里一切都简单。在全局代码中，&lt;em&gt;this始终是全局对象本身&lt;/em&gt;，这样有可能间接的引用它。&lt;/p&gt;&#xD;
&lt;div id="highlighter_919055" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_919055" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_919055" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_919055" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// explicit property definition of &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// the global object &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;.a = 10; &lt;/code&gt;&lt;code &gt;// global.a = 10 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;alert(a); &lt;/code&gt;&lt;code &gt;// 10 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// implicit definition via assigning &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// to unqualified identifier &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;b = 20; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;.b); &lt;/code&gt;&lt;code &gt;// 20 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// also implicit via variable declaration &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// because variable object of the global context &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;11.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// is the global object itself &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;12.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;c = 30; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;13.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;.c); &lt;/code&gt;&lt;code &gt;// 30&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="font-size: 15px" id="this-value-in-the-function-code"&gt;&lt;strong&gt;函数代码中的this值&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在函数代码中使用&lt;em&gt;this&lt;/em&gt; 时很有趣，这种情况很难且会导致很多问题。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;这种类型的代码中，&lt;em&gt;this&lt;/em&gt;值的首要特点（或许是最主要的）是它不是&lt;em&gt;静态的绑定到一个函数&lt;/em&gt;。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;正如我们上面曾提到的那样，这个值进入上下文时确定，在一个函数代码中，这个值在每一次完全不同。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;但是，在代码运行时的&lt;em&gt;this&lt;/em&gt;值是不变的，也就是说，既然它不是一个变量，就不可能为其分配一个新值（相反，在Python编程语言中，它明确的定义为对象本身，在运行期间可以不断改变）。&lt;/p&gt;&#xD;
&lt;div id="highlighter_508579" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_508579" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_508579" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_508579" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;foo = {x: 10}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;bar = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;x: 20, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;test: &lt;/code&gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt; &lt;code &gt;=== bar); &lt;/code&gt;&lt;code &gt;// true &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;.x); &lt;/code&gt;&lt;code &gt;// 20 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;this&lt;/code&gt; &lt;code &gt;= foo; &lt;/code&gt;&lt;code &gt;// error &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;.x); &lt;/code&gt;&lt;code &gt;// if there wasn't an error then 20, not 10 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;11.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;12.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// on entering the context this value is &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;13.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// determined as "bar" object; why so - will &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;14.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// be discussed below in detail &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;15.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;bar.test(); &lt;/code&gt;&lt;code &gt;// true, 20 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;16.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo.test = bar.test; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;17.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// however here this value will now refer &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;18.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// to "foo" &amp;#8211; even though we're calling the same function &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;19.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo.test(); &lt;/code&gt;&lt;code &gt;// false, 10&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;那么，是什么影响了函数代码中&lt;em&gt;this&lt;/em&gt;值的变化。有几个因素：&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;首先，在通常的函数调用中，&lt;em&gt;this&lt;/em&gt;是由激活上下文代码的调用者来提供的，即&lt;em&gt;调用函数的父上下文&lt;/em&gt;(parent context )。&lt;em&gt;this取决于调用函数的方式&lt;/em&gt;。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;为了在任何情况下准确无误的确定&lt;em&gt;this&lt;/em&gt;值，有必要理解和记住这重要的一点。正是&lt;em&gt;调用函数的方式&lt;/em&gt;影响了调用的上下文中的&lt;em&gt;this&lt;/em&gt;值，没有别的什么（我们可以在一些文章，甚至是在关于javascript的书籍中看到，它们声称：&amp;#8220;&lt;em&gt;this值取决于函数如何定义，如果它是全局函数，this设置为全局对象，如果函数是一个对象的方法，this将总是指向这个对象。&amp;#8211;这绝对不正确&lt;/em&gt;&amp;#8221;）。继续我们的话题，可以看到，即使是正常的全局函数也会被&lt;span style="color: #f00"&gt;调用方式&lt;/span&gt;的不同形式激活，这些&lt;span style="color: #f00"&gt;不同的调用方式&lt;/span&gt;导致了不同的&lt;em&gt;this&lt;/em&gt;值。&lt;/p&gt;&#xD;
&lt;div id="highlighter_33948" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_33948" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_33948" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_33948" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;foo() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo(); &lt;/code&gt;&lt;code &gt;// global &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;5.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;alert(foo === foo.prototype.constructor); &lt;/code&gt;&lt;code &gt;// true &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;6.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// but with another form of the call expression &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;7.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// of the same function, this value is different &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;8.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo.prototype.constructor(); &lt;/code&gt;&lt;code &gt;// foo.prototype&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;有可能作为一些对象定义的方法来调用函数，但是&lt;em&gt;this&lt;/em&gt;将不会设置为这个对象。&lt;/p&gt;&#xD;
&lt;div id="highlighter_220911" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_220911" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_220911" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_220911" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;foo = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;bar: &lt;/code&gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt; &lt;code &gt;=== foo); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo.bar(); &lt;/code&gt;&lt;code &gt;// foo, true &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;exampleFunc = foo.bar; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;alert(exampleFunc === foo.bar); &lt;/code&gt;&lt;code &gt;// true &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// again with another form of the call expression &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;11.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// of the same function, we have different this value &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;12.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;exampleFunc(); &lt;/code&gt;&lt;code &gt;// global, false&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;那么，&lt;span style="color: #f00"&gt;调用函数的方式&lt;/span&gt;如何影响&lt;em&gt;this&lt;/em&gt;值？为了充分理解&lt;em&gt;this&lt;/em&gt;值的确定，需要详细分析其内部属性之一&amp;#8212;&amp;#8212;&lt;em&gt;引用类型&lt;/em&gt;（Reference type）。&lt;/p&gt;&#xD;
&lt;p style="font-size: 14px" id="reference-type"&gt;&lt;strong&gt;引用类型&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;使用伪代码，引用类型的值可以表示为拥有两个属性的对象&amp;#8212;&amp;#8212;base（即拥有属性的那个对象），和base中的propertyName 。&lt;/p&gt;&#xD;
&lt;div id="highlighter_147373" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_147373" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_147373" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_147373" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;valueOfReferenceType = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: &amp;lt;base object&amp;gt;, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &amp;lt;property name&amp;gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;};&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;引用类型的值只有两种情况：&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;当我们处理一个标示符时&lt;/li&gt;&lt;li&gt;或一个属性访问器 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;标示符的处理过程在&lt;a href="http://dmitrysoshnikov.com/ecmascript/chapter-4-scope-chain/" target="_blank"&gt;Chapter 4. Scope chain &lt;/a&gt;中讨论，在这里我们只是看到，在该算法的返回值中，总是一个引用类型的值（这对&lt;em&gt;this&lt;/em&gt;来说很重要）。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;标识符是变量名，函数名，函数参数名和全局对象中未识别的属性名。例如，下面标识符的值：&lt;/p&gt;&#xD;
&lt;div id="highlighter_451566" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_451566" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_451566" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_451566" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;foo = 10; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;bar() {}&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在操作的中间结果中，引用类型对应的值如下：&lt;/p&gt;&#xD;
&lt;div id="highlighter_760648" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_760648" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_760648" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_760648" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;fooReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: global, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'foo'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;barReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: global, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'bar'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;};&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;为了从引用类型中得到一个对象真正的值，伪代码中的&lt;em&gt;GetValue&lt;/em&gt;方法可以做如下描述：&lt;/p&gt;&#xD;
&lt;div id="highlighter_387986" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_387986" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_387986" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_387986" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;GetValue(value) { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;if&lt;/code&gt; &lt;code &gt;(Type(value) != Reference) { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;return&lt;/code&gt; &lt;code &gt;value; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;base = GetBase(value); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;if&lt;/code&gt; &lt;code &gt;(base === &lt;/code&gt;&lt;code &gt;null&lt;/code&gt;&lt;code &gt;) { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;throw&lt;/code&gt; &lt;code &gt;new&lt;/code&gt; &lt;code &gt;ReferenceError; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;return&lt;/code&gt; &lt;code &gt;base.[[Get]](GetPropertyName(value)); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在那里内部的&lt;em&gt;[[Get]]&lt;/em&gt;方法返回对象属性真正的值，包括对原型链中继承的属性分析。&lt;/p&gt;&#xD;
&lt;div id="highlighter_714005" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_714005" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_714005" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_714005" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;GetValue(fooReference); &lt;/code&gt;&lt;code &gt;// 10 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;GetValue(barReference); &lt;/code&gt;&lt;code &gt;// function object "bar"&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;属性访问器应该熟悉。它有两种变体：点（.）语法（此时属性名是正确的标示符，且事先知道），或括号语法（[]）。&lt;/p&gt;&#xD;
&lt;div id="highlighter_486343" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_486343" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_486343" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_486343" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo.bar(); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo[&lt;/code&gt;&lt;code &gt;'bar'&lt;/code&gt;&lt;code &gt;]();&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在中间计算的返回值中，我们有了引用类型的值。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;引用类型的值与函数上下文中的&lt;em&gt;this&lt;/em&gt;值如何相关？&amp;#8212;&amp;#8212;从最重要的意义上来说。 &lt;span style="color: #f00"&gt;这个关联的过程是这篇文章的核心。&lt;/span&gt; 一个函数上下文中确定&lt;em&gt;this&lt;/em&gt;值的通用规则如下：&lt;/p&gt;&#xD;
&lt;p style="border-left: #284a66 2px solid; padding-left: 10px; padding-right: 10px"&gt;在一个函数上下文中，&lt;em&gt;this由调用者提供，由调用函数的方式&lt;/em&gt;来决定。如果调用括号()的左边是引用类型的值，&lt;em&gt;this&lt;/em&gt;将设为引用类型值的base对象（base object），在其他情况下（与引用类型不同的任何其它属性），这个值为null。&lt;span style="color: #f00"&gt;不过，实际不存在this的值为null的情况，因为当this的值为null的时候，其值会被隐式转换为全局对象。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;我们看看这个例子中的表现：&lt;/p&gt;&#xD;
&lt;div id="highlighter_247937" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_247937" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_247937" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_247937" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;foo() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;return&lt;/code&gt; &lt;code &gt;this&lt;/code&gt;&lt;code &gt;; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo(); &lt;/code&gt;&lt;code &gt;// global&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;我们看到在调用括号的左边是一个引用类型值（因为foo是一个标示符）。&lt;/p&gt;&#xD;
&lt;div id="highlighter_160224" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_160224" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_160224" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_160224" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;fooReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: global, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'foo'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;};&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;相应地，&lt;em&gt;this&lt;/em&gt;也设置为引用类型的base对象。即全局对象。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;同样，使用属性访问器：&lt;/p&gt;&#xD;
&lt;div id="highlighter_449189" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_449189" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_449189" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_449189" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;foo = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;bar: &lt;/code&gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;return&lt;/code&gt; &lt;code &gt;this&lt;/code&gt;&lt;code &gt;; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;5.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;6.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo.bar(); &lt;/code&gt;&lt;code &gt;// foo&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;我们再次拥有一个引用类型，其base是foo对象，在函数bar激活时用作&lt;em&gt;this&lt;/em&gt;。&lt;/p&gt;&#xD;
&lt;div id="highlighter_259192" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_259192" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_259192" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_259192" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;fooBarReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: foo, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'bar'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;};&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;但是，&lt;em&gt;用另外一种形式激活相同的函数&lt;/em&gt;，我们得到其它的&lt;em&gt;this&lt;/em&gt;值。&lt;/p&gt;&#xD;
&lt;div id="highlighter_227126" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_227126" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_227126" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_227126" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;test = foo.bar; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;test(); &lt;/code&gt;&lt;code &gt;// global&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;因为test作为标示符，生成了引用类型的其他值，其base（全局对象）用作&lt;em&gt;this&lt;/em&gt; 值。&lt;/p&gt;&#xD;
&lt;div id="highlighter_233800" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_233800" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_233800" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_233800" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;testReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: global, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'test'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;};&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;现在，我们可以很明确的告诉你，为什么用表达式的不同形式激活同一个函数会不同的&lt;em&gt;this&lt;/em&gt;值，答案在于引用类型（type Reference）不同的中间值。&lt;/p&gt;&#xD;
&lt;div id="highlighter_627348" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_627348" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_627348" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_627348" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;foo() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo(); &lt;/code&gt;&lt;code &gt;// global, because &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;fooReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: global, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'foo'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;11.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;12.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;alert(foo === foo.prototype.constructor); &lt;/code&gt;&lt;code &gt;// true &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;13.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;14.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// another form of the call expression &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;15.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;16.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo.prototype.constructor(); &lt;/code&gt;&lt;code &gt;// foo.prototype, because &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;17.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;18.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;fooPrototypeConstructorReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;19.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: foo.prototype, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;20.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'constructor'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;21.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;};&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;另外一个&lt;span style="color: #f00"&gt;通过调用方式&lt;/span&gt;动态确定&lt;em&gt;this&lt;/em&gt;值的经典例子：&lt;/p&gt;&#xD;
&lt;div id="highlighter_772040" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_772040" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_772040" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_772040" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;foo() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;.bar); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;x = {bar: 10}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;y = {bar: 20}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;x.test = foo; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;y.test = foo; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;11.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;x.test(); &lt;/code&gt;&lt;code &gt;// 10 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;12.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;y.test(); &lt;/code&gt;&lt;code &gt;// 20&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="font-size: 14px" id="function-call-and-non-reference-type"&gt;&lt;strong&gt;函数调用和非引用类型&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;因此，正如我们已经指出，当调用括号的左边不是引用类型而是其它类型，这个值自动设置为null，结果为全局对象。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;让我们再思考这种表达式：&lt;/p&gt;&#xD;
&lt;div id="highlighter_147" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_147" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_147" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_147" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;(&lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&amp;nbsp; &lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;code &gt;// null =&amp;gt; global &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;})();&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在这个例子中，我们有一个函数对象但不是引用类型的对象（它不是标示符，也不是属性访问器），相应地，&lt;em&gt;this&lt;/em&gt;值最终设为全局对象。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;更多复杂的例子：&lt;/p&gt;&#xD;
&lt;div id="highlighter_822194" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_822194" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_822194" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_822194" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;foo = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;bar: &lt;/code&gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;foo.bar(); &lt;/code&gt;&lt;code &gt;// Reference, OK =&amp;gt; foo &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;(foo.bar)(); &lt;/code&gt;&lt;code &gt;// Reference, OK =&amp;gt; foo &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;(foo.bar = foo.bar)(); &lt;/code&gt;&lt;code &gt;// global? &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;11.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;(&lt;/code&gt;&lt;code &gt;false&lt;/code&gt; &lt;code &gt;|| foo.bar)(); &lt;/code&gt;&lt;code &gt;// global? &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;12.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;(foo.bar, foo.bar)(); &lt;/code&gt;&lt;code &gt;// global?&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;为什么我们有一个属性访问器，它的中间值应该为引用类型的值，在某些调用中我们得到的&lt;em&gt;this&lt;/em&gt;值不是base对象，而是global对象？&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;问题在于后面的三个调用，在应用一定的运算操作之后，在调用括号的左边的值不在是引用类型。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;第一个例子很明显&amp;#8212;&amp;#8212;&amp;#8212;明显的引用类型，结果是，&lt;em&gt;this&lt;/em&gt;为base对象，即foo。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在第二个例子中，组运算符并不适用，想想上面提到的，从引用类型中获得一个对象真正的值的方法，如GetValue。相应的，在组运算的返回中&amp;#8212;&amp;#8212;&amp;#8212;我们得到仍是一个引用类型。这就是&lt;em&gt;this&lt;/em&gt;值为什么再次设为base对象，即foo。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;第三个例子中，与组运算符不同，赋值运算符调用了GetValue方法。返回的结果是函数对象（但不是引用类型），这意味着&lt;em&gt;this&lt;/em&gt;设为null，结果是global对象。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;第四个和第五个也是一样&amp;#8212;&amp;#8212;逗号运算符和逻辑运算符（OR）调用了GetValue 方法，相应地，我们失去了引用而得到了函数。并再次设为global。&lt;/p&gt;&#xD;
&lt;p style="font-size: 14px" id="reference-type-and-null-this-value"&gt;&lt;strong&gt;引用类型和 this为null&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;有一种情况是这样的：当调用表达式限定了call括号左边的引用类型的值， 尽管&lt;em&gt;this&lt;/em&gt;被设定为null，但结果是global。当引用类型值的base对象是被激活的对象时，这种情况就会出现。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;span&gt;下面的实例中，内部函数被父函数调用，此时我们就能够看到上面说的那种特殊情况。&lt;/span&gt;正如我们在第二章知道的一样，局部变量、内部函数、形式参数储存在给定函数的激活对象中。&lt;/p&gt;&#xD;
&lt;div id="highlighter_892606" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_892606" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_892606" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_892606" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;foo() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;bar() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;code &gt;// global &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;5.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;bar(); &lt;/code&gt;&lt;code &gt;// the same as AO.bar() &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;6.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;激活对象总是作为&lt;em&gt;this&lt;/em&gt;返回，值为null&amp;#8212;&amp;#8212;（即伪代码的AO.bar()相当于null.bar()）。这里我们再次回到上面描述的例子，&lt;em&gt;this&lt;/em&gt;设置为全局对象。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;span&gt;有一种情况除外&lt;/span&gt;：如果with对象包含一个函数名属性，在with语句的内部块中调用函数。With语句添加到该对象作用域的最前端，即在激活对象的前面。相应地，也就有了引用类型（通过标示符或属性访问器）， &lt;span style="color: #f00"&gt;其base对象不再是激活对象，而是with语句的对象。&lt;/span&gt;顺便提一句，它不仅与内部函数相关，也与全局函数相关。因为with对象使作用域最前端的对象（全局或激活对象）相形见绌。&lt;/p&gt;&#xD;
&lt;div id="highlighter_824651" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_824651" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_824651" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_824651" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;x = 10; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;with&lt;/code&gt; &lt;code &gt;({ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;foo: &lt;/code&gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;.x); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;x: 20 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}) { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;11.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;foo(); &lt;/code&gt;&lt;code &gt;// 20 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;12.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;13.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;14.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;15.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// because &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;16.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;17.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt;&amp;nbsp; &lt;code &gt;fooReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;18.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: __withObject, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;19.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'foo'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;20.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;};&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;同样的情况出现在catch语句的实际参数中函数调用：在这种情况下，catch对象添加到作用域的最前端，即在激活对象或全局对象的前面。但是，这个特定的行为被确认为ECMA-262-3的一个bug，这个在新版的ECMA-262-5中修复了。这样，在特定的激活对象中，&lt;em&gt;this&lt;/em&gt;指向全局对象。而不是catch对象。&lt;/p&gt;&#xD;
&lt;div id="highlighter_318693" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_318693" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_318693" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_318693" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;try&lt;/code&gt; &lt;code &gt;{ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;throw&lt;/code&gt; &lt;code &gt;function&lt;/code&gt; &lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 28px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;code &gt;catch&lt;/code&gt; &lt;code &gt;(e) { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;e(); &lt;/code&gt;&lt;code &gt;// __catchObject - in ES3, global - fixed in ES5 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// on idea &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;eReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: __catchObject, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;11.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'e'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;12.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;}; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;13.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// but, as this is a bug &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;14.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// then this value is forced to global &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;15.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;// null =&amp;gt; global &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;16.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;eReference = { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;17.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;base: global, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;18.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;propertyName: &lt;/code&gt;&lt;code &gt;'e'&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;19.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;};&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;同样的情况出现在命名函数（函数的更对细节参考Chapter 5. Functions）的递归调用中。在函数的第一次调用中，base对象是父激活对象（或全局对象），在递归调用中，base对象应该是存储着函数表达式可选名称的特定对象。但是，在这种情况下，&lt;em&gt;this&lt;/em&gt;总是指向全局对象。&lt;/p&gt;&#xD;
&lt;div id="highlighter_524796" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_524796" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_524796" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_524796" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;(&lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&amp;nbsp; &lt;code &gt;foo(bar) { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;5.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;!bar &amp;amp;&amp;amp; foo(1); &lt;/code&gt;&lt;code &gt;// "should" be special object, but always (correct) global &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;6.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;7.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;})(); &lt;/code&gt;&lt;code &gt;// global&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="font-size: 14px" id="this-value-in-function-called-as-the-constructor"&gt;&lt;strong&gt;作为构造器调用的函数的this&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;还有一个与&lt;em&gt;this&lt;/em&gt;值相关的情况是在函数的上下文中，这是一个构造函数的调用。&lt;/p&gt;&#xD;
&lt;div id="highlighter_528740" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_528740" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_528740" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_528740" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;A() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;code &gt;// newly created object, below - "a" object &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;.x = 10; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;5.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;6.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;a = &lt;/code&gt;&lt;code &gt;new&lt;/code&gt; &lt;code &gt;A(); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;7.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;alert(a.x); &lt;/code&gt;&lt;code &gt;// 10&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在这个例子中，new运算符调用&amp;#8220;A&amp;#8221;函数的内部的[[Construct]] 方法，&lt;span style="color: #f00"&gt;接着&lt;/span&gt;，在对象创建后，调用内部的[[Call]] 方法。 &lt;span style="color: #f00"&gt;所有相同的函数&amp;#8220;A&amp;#8221;都将this的值设置为新创建的对象。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="font-size: 14px" id="manual-setting-of-this-value-for-a-function-call"&gt;&lt;strong&gt;手动设置一个函数调用的this&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在函数原型中定义的两个方法（因此所有的函数都可以访问它）允许去手动设置函数调用的&lt;em&gt;this&lt;/em&gt;值。它们是.apply和.call方法。他们用接受的第一个参数作为&lt;em&gt;this&lt;/em&gt;值，&lt;em&gt;this&lt;/em&gt; 在调用的作用域中使用。这两个方法的区别很小，对于.apply，第二个参数必须是数组（或者是类似数组的对象，如arguments，反过来，.call能接受任何参数。两个方法必须的参数是第一个&amp;#8212;&amp;#8212;&lt;em&gt;this&lt;/em&gt;。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;例如：&lt;/p&gt;&#xD;
&lt;div id="highlighter_372850" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;a style="width: 16px; height: 16px"  title="view source" href="http://www.denisdeng.com/?p=900#viewSource" highlighterid="highlighter_372850" commandname="viewSource"&gt;view source&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="print" href="http://www.denisdeng.com/?p=900#printSource" highlighterid="highlighter_372850" commandname="printSource"&gt;print&lt;/a&gt;&lt;a style="width: 16px; height: 16px"  title="?" href="http://www.denisdeng.com/?p=900#about" highlighterid="highlighter_372850" commandname="about"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;b = 10; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;function&lt;/code&gt; &lt;code &gt;a(c) { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;this&lt;/code&gt;&lt;code &gt;.b); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 14px !important" &gt;&lt;code &gt;alert(c); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;a(20); &lt;/code&gt;&lt;code &gt;// this === global, this.b == 10, c == 20 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span style="margin-left: 7px !important" &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;a.call({b: 20}, 30); &lt;/code&gt;&lt;code &gt;// this === {b: 20}, this.b == 20, c == 30 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;span style="margin-left: 0px !important" &gt;&lt;code &gt;a.apply({b: 30}, [40]) &lt;/code&gt;&lt;code &gt;// this === {b: 30}, this.b == 30, c == 40&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p style="font-size: 15px" id="conclusion"&gt;&lt;strong&gt;结论&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;在这篇文章中，我们讨论了ECMAScript中&lt;em&gt;this&lt;/em&gt;关键字的特征（对比于C++ 和 Java，它们的确是特色）。我希望这篇文章有助于你准确的理解ECMAScript中&lt;em&gt;this&lt;/em&gt;关键字如何工作。同样，我很乐意在评论中回到你的问题。&lt;/p&gt;&#xD;
&lt;p style="font-size: 15px" id="additional-literature"&gt;&lt;strong&gt;其它参考&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;10.1.7 &amp;#8211; &lt;a title="This" href="http://bclary.com/2004/11/07/#a-10.1.7"&gt;This&lt;/a&gt;&lt;/li&gt;&lt;li&gt;11.1.1 &amp;#8211; &lt;a title="The this keyword" href="http://bclary.com/2004/11/07/#a-11.1.1"&gt;The this keyword&lt;/a&gt;&lt;/li&gt;&lt;li&gt;11.2.2 &amp;#8211; &lt;a title="The new operator" href="http://bclary.com/2004/11/07/#a-11.2.2"&gt;The new operator&lt;/a&gt;&lt;/li&gt;&lt;li&gt;11.2.3 &amp;#8211; &lt;a title="Function calls" href="http://bclary.com/2004/11/07/#a-11.2.3"&gt;Function calls&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;strong&gt;原文地址：&lt;/strong&gt;&lt;a href="http://www.denisdeng.com/?p=900"&gt;http://www.denisdeng.com/?p=900&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;英文地址：&lt;a href="http://dmitrysoshnikov.com/ecmascript/chapter-3-this/"&gt;http://dmitrysoshnikov.com/ecmascript/chapter-3-this/&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/1854672.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/archive/2010/10/18/1854672.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yizuierguo/archive/2010/09/29/1838219.html</id><title type="text">8月前端 tips</title><summary type="text">8.2 - 8.6 104.【JS】获取当前时间的毫秒数可通过以下方法：new Date().getTime(), new Date().valueOf(), +new Date(), new Date() * 1, Date.parse(Date()) &amp;#8230; 等等，前四种方法括号内可以带时间的参数，可以返回相应的时间的毫秒数，而最后一个会忽略掉任何参数。推荐看下：http://www....</summary><published>2010-09-29T03:06:00Z</published><updated>2010-09-29T03:06:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/archive/2010/09/29/1838219.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/archive/2010/09/29/1838219.html"/><content type="html">&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;8.2 - 8.6&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;104.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】获取当前时间的毫秒数可通过以下方法：&lt;span&gt;new Date().getTime(), new Date().valueOf(), +new Date(), new Date() * 1, Date.parse(Date()) &amp;#8230; &lt;/span&gt;等等，前四种方法括号内可以带时间的参数，可以返回相应的时间的毫秒数，而最后一个会忽略掉任何参数。推荐看下：http://www.gracecode.com/archives/3004/&amp;nbsp; （剑翎，乔福）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;105.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【Flash】页面中的swf配置参数中wmode一般 为&lt;span&gt; window&lt;/span&gt;。即独立窗口模式播放，不与当前HTML产生交互。（龙藏）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;106.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【Mobile】兼容iPhone/Android的屏幕旋转事件：&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;var supportsOrientationChange = "onorientationchange" in window,&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;orientationEvent = supportsOrientationChange&amp;nbsp;? "orientationchange" : "resize";&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;window.addEventListener(orientationEvent, function() {&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;switch(window.orientation){&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0:&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //do sth;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 90:&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //do sth;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;}, false);&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;（王卓）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;107.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】+ 的字符串连接在传统的 IE 浏览器下性能低下，可考虑使用数组索引（或push，索引略快）添加、join最终拼接的方式（但：Safari、Opera、Chrome和IE8浏览器都已优化了+的字符串连接性能，优于数组的方法）。（圆心）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;108.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】!!可以便捷的强制把其他类型转换为布尔类型，比如 !!1。&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;8.9 - 8.13&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;109.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【CSS】应该特别关注的引起 reflow 的几个原因：计算 offsetWidth 和 offsetHeight 属性、改变字体。&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;详细可阅读：http://www.planabc.net/2009/04/13/reflow/ （圆心）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;110.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【Mobile】获取当前地理位置的方法：navigator.geolocation.getCurrentPosition(showMap/*回调函数*/)，坐标变量：&lt;span&gt;latitude = position.coords.latitude; longitude = position.coords.longitude;&lt;/span&gt;（王卓）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;111.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【Flash】在页面中应用swf对象的，如果对显示没有特殊要求，请不要将wmode 强制写为 opaque 或 transparent，这会影响其性能。（龙藏）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;112.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】在使用 parseInt 函数转换数字的时候，尽量带上第二个参数，强制转换为某一进制类型的数字，否则，如 parseInt('080') 可能不能获得你想要的结果，推荐使用&lt;span&gt; parseInt('080', 10)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;113.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】在 IE 中当重新设置新的 href 属性值时，如果链接文字含有 &amp;#8220;http://&amp;#8221; 或 &amp;#8220;@&amp;#8221; ，则其&lt;span&gt; innerHTML &lt;/span&gt;将显示不正确，显示成设置的 href 属性。解决方法是在修改href时，赋值前面加一个空格。（圆心）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;8.16 - 8.20&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;114.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】在做数组或者其它依赖 length 属性的循环时，建议先对 length 赋值，这样可以避免每次循环都去计算 length（特殊情况除外），例如：&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var myString = "Hello";&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( var i = 0, len = myString.length; i &amp;lt; len; i++ ) {&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert( myString.charAt( i ) );&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;115.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【Mobile】Android 2.2 webkit新APIs：navigator.connection.type可以判断当前网络连接的类型；navigator.onLine检测设备是否联网；navigator.isApplicationInstalled检测是否安装某一个本地应用（王卓）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;116.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】当脚本将 img 元素 innerHTML 给其他创建的元素，未添加到 DOM 树，则除 Opera 外，其他浏览器都会立即请求图片。（圆心）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;117.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【Flash】对于swf的内容，优雅降级的最佳事件是给出可替换内容&lt;span&gt;&amp;#8220;alternative content&amp;#8221;. &lt;/span&gt;这部分内容仅在&amp;lt;object&amp;gt;中被直接支持。这就是为什么推荐一般采用 &amp;lt;object&amp;gt; 进行swf嵌入的原因。（龙藏）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;118.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【CSS】IE bug Table：&lt;span&gt; http://ued.alipay.com/2010/07/ie-beat-the-holy-canon-css-bug-table/ &lt;/span&gt;（龙刚）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;8.22 - 8.26&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;119.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】IE为setInterval提供的延时时间不能为0。当setInterval的延时时间为0时，它会转变成 setTimeout（仅执行一次回调函数），可以通过为其提供1ms的延迟来解决这个问题。（圆心）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;120.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【Flash】swf在不绑定或动态加载字体的情况下，一般仅支持 _sans (类似 Helvetica 或 Arial)、&lt;span&gt;_serif (&lt;/span&gt;类似 Times Roman) 和_typewriter (类似 Courier) 三类字体。（龙藏）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;121.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【Mobile】iPhone上使用Gestures API来实现缩放和旋转：&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var width = 100, height = 200, rotation = ;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node.ongesturechange = function(e){&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;var node = e.target;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;缩放和旋转都是相对值，&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;所以要等手势结束时再更改我们的变量&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;node.style.width = (width * e.scale) + "px";&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;node.style.height = (height * e.scale) + "px";&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;node.style.webkitTransform = "rotate(" + ((rotation + e.rotation) % 360) + "deg)";&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node.ongestureend = function(e){&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;更新这些变量，以备后用&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;width *= e.scale;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;height *= e.scale;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rotation = (rotation + e.rotation) % 360;&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;（王卓）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;122.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】对于select中的值，用JS选中它，除了用xxx.options[指定的index]以外，如果已经预先知道需要选中的那项的值，还可以直接用select.value=指定的值来快速搞定。（龙刚）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;123.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】条件判断时，比如 if ( myNum == 3 )，建议书写为 if ( 3 == myNum )，因为后者在你误写 == 为 = 或者其它失误时，错误发生后你可以很容易的发行问题，浏览器的报错提示也会有更友好的提示。&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;8.30 - 8.31&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;124.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【Flash】给swf传递参数或者以flashvars方式传递。可以支持内容编码过的JSON和 XML。如对 JSON的所有 value 进行 encodeURIComponent。（龙藏）&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;125.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;【JS】在使用 setTimeout 或者 setInterval 函数时，需要注意，如果第一个参数传入的是字符串，那么将在全局作用域里寻找此函数，而不会在当前作用域中寻找，所以建议第一个参数传入函数，比如：setTimeout( function() { loop(counter); }, 1000 );。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/1838219.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/archive/2010/09/29/1838219.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yizuierguo/archive/2010/08/07/1794573.html</id><title type="text">To forever Tracy McGrady</title><summary type="text">特雷西&amp;#183;麦克格雷迪一直是我喜欢的篮球运动员，而且永远是！昨天又在视频网站上看了他的集锦,中间配乐是It'S MY LIFE~抒情版歌词如下：[代码]回顾麦克格雷迪的过去的成长历程,非常令人惊叹,不得不说,麦克格雷迪是一个天才球员,更是一个好球员：【2002年秋，得知华盛顿狙击案的受害者&amp;#8212;&amp;#8212;13岁的伊安-布朗（Iran Brown）想要自己的签名，他给布朗寄去了自己...</summary><published>2010-08-07T02:19:00Z</published><updated>2010-08-07T02:19:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/archive/2010/08/07/1794573.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/archive/2010/08/07/1794573.html"/><content type="html">&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/yizuierguo/trac.jpg" width="530" height="380" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;特雷西&amp;#183;麦克格雷迪一直是我喜欢的篮球运动员，而且永远是！&lt;/p&gt;&#xD;
&lt;p&gt;昨天又在视频网站上看了他的集锦,中间配乐是&lt;a href="http://www.songtaste.com/playmusic.php?song_id=1883609"&gt;It'S MY LIFE~抒情版&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;歌词如下：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;This&amp;nbsp;ain&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;t&amp;nbsp;a&amp;nbsp;song&amp;nbsp;for&amp;nbsp;the&amp;nbsp;broken-hearted&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;这不是一首给伤心人的歌&amp;nbsp;&lt;br /&gt;No&amp;nbsp;silent&amp;nbsp;prayer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;the&amp;nbsp;faith&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;departed&amp;nbsp;&lt;br /&gt;没有为失去信仰者的默祷&amp;nbsp;&lt;br /&gt;I&amp;nbsp;ain&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;t&amp;nbsp;gonna&amp;nbsp;be&amp;nbsp;just&amp;nbsp;a&amp;nbsp;face&amp;nbsp;in&amp;nbsp;the&amp;nbsp;crowd&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我不希望自己只是芸芸众生之一&amp;nbsp;&lt;br /&gt;You&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;re&amp;nbsp;gonna&amp;nbsp;hear&amp;nbsp;my&amp;nbsp;voice&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;你将会听到我的声音&amp;nbsp;&lt;br /&gt;When&amp;nbsp;I&amp;nbsp;shout&amp;nbsp;it&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;loud&amp;nbsp;&lt;br /&gt;当我大声呐喊出来&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Chorus:&amp;nbsp;&lt;br /&gt;It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;my&amp;nbsp;life&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;这是我的人生&amp;nbsp;&lt;br /&gt;It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;now&amp;nbsp;or&amp;nbsp;never&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;把握现在，机会稍纵即逝&amp;nbsp;&lt;br /&gt;I&amp;nbsp;ain&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;t&amp;nbsp;gonna&amp;nbsp;live&amp;nbsp;forever&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我不希望长生不死&amp;nbsp;&lt;br /&gt;I&amp;nbsp;just&amp;nbsp;want&amp;nbsp;to&amp;nbsp;live&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;I&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;m&amp;nbsp;alive&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我只想趁活著得时候认真的生活&amp;nbsp;&lt;br /&gt;(It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;my&amp;nbsp;life)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;（这是我的人生）&amp;nbsp;&lt;br /&gt;My&amp;nbsp;heart&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;like&amp;nbsp;an&amp;nbsp;open&amp;nbsp;highway&amp;nbsp;&lt;br /&gt;我的心像是开放的高速公路&amp;nbsp;&lt;br /&gt;Like&amp;nbsp;Frankie&amp;nbsp;said&amp;nbsp;&lt;br /&gt;就像法兰克辛那屈唱的：&amp;nbsp;&lt;br /&gt;I&amp;nbsp;did&amp;nbsp;it&amp;nbsp;my&amp;nbsp;way&amp;nbsp;&lt;br /&gt;我走自己的路&amp;nbsp;&lt;br /&gt;I&amp;nbsp;just&amp;nbsp;wanna&amp;nbsp;live&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;I&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;m&amp;nbsp;alive&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我只想趁活著的时候认真的生活&amp;nbsp;&lt;br /&gt;It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;my&amp;nbsp;life&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;这是我的人生&amp;nbsp;&lt;br /&gt;&lt;br /&gt;This&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;the&amp;nbsp;ones&amp;nbsp;who&amp;nbsp;stood&amp;nbsp;their&amp;nbsp;ground&amp;nbsp;&lt;br /&gt;这是为坚守信念的人们而唱&amp;nbsp;&lt;br /&gt;For&amp;nbsp;Tommy&amp;nbsp;and&amp;nbsp;Gina&amp;nbsp;who&amp;nbsp;never&amp;nbsp;backed&amp;nbsp;down&amp;nbsp;&lt;br /&gt;为从不退缩的汤米和吉娜而唱&amp;nbsp;&lt;br /&gt;Tomorrow&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;getting&amp;nbsp;harder&amp;nbsp;make&amp;nbsp;no&amp;nbsp;mistake&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;毫无疑问的，未来日趋艰辛&amp;nbsp;&lt;br /&gt;Luck&amp;nbsp;ain&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;t&amp;nbsp;even&amp;nbsp;lucky&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;幸运不再幸运&amp;nbsp;&lt;br /&gt;Got&amp;nbsp;to&amp;nbsp;make&amp;nbsp;your&amp;nbsp;own&amp;nbsp;breaks&amp;nbsp;&lt;br /&gt;你必须自己寻求突破&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Chorus:&amp;nbsp;&lt;br /&gt;It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;my&amp;nbsp;life&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;这是我的人生&amp;nbsp;&lt;br /&gt;It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;now&amp;nbsp;or&amp;nbsp;never&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;把握现在，机会稍纵即逝&amp;nbsp;&lt;br /&gt;I&amp;nbsp;ain&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;t&amp;nbsp;gonna&amp;nbsp;live&amp;nbsp;forever&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我不希望长生不死&amp;nbsp;&lt;br /&gt;I&amp;nbsp;just&amp;nbsp;want&amp;nbsp;to&amp;nbsp;live&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;I&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;m&amp;nbsp;alive&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我只想趁活著得时候认真的生活&amp;nbsp;&lt;br /&gt;(It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;my&amp;nbsp;life)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;（这是我的人生）&amp;nbsp;&lt;br /&gt;My&amp;nbsp;heart&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;like&amp;nbsp;an&amp;nbsp;open&amp;nbsp;highway&amp;nbsp;&lt;br /&gt;我的心像是开放的高速公路&amp;nbsp;&lt;br /&gt;Like&amp;nbsp;Frankie&amp;nbsp;said&amp;nbsp;&lt;br /&gt;就像法兰克辛那屈唱的：&amp;nbsp;&lt;br /&gt;I&amp;nbsp;did&amp;nbsp;it&amp;nbsp;my&amp;nbsp;way&amp;nbsp;&lt;br /&gt;我走自己的路&amp;nbsp;&lt;br /&gt;I&amp;nbsp;just&amp;nbsp;wanna&amp;nbsp;live&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;I&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;m&amp;nbsp;alive&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我只想趁活著的时候认真的生活&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Cause&amp;nbsp;it&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;s&amp;nbsp;my&amp;nbsp;life&amp;nbsp;&lt;br /&gt;这是我的人生&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Better&amp;nbsp;stand&amp;nbsp;tall&amp;nbsp;when&amp;nbsp;they&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;re&amp;nbsp;calling&amp;nbsp;you&amp;nbsp;out&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;当别人找你麻烦，挺直身子&amp;nbsp;&lt;br /&gt;Don&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;t&amp;nbsp;bend,&amp;nbsp;don&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;t&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;break&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;baby,&amp;nbsp;don&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;t&amp;nbsp;back&amp;nbsp;down&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;不要屈服，不要放弃，宝贝，不要畏缩&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Chorus:&amp;nbsp;&lt;br /&gt;It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;my&amp;nbsp;life&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;这是我的人生&amp;nbsp;&lt;br /&gt;It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;now&amp;nbsp;or&amp;nbsp;never&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;把握现在，机会稍纵即逝&amp;nbsp;&lt;br /&gt;I&amp;nbsp;ain&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;t&amp;nbsp;gonna&amp;nbsp;live&amp;nbsp;forever&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我不希望长生不死&amp;nbsp;&lt;br /&gt;I&amp;nbsp;just&amp;nbsp;want&amp;nbsp;to&amp;nbsp;live&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;I&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;m&amp;nbsp;alive&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我只想趁活著得时候认真的生活&amp;nbsp;&lt;br /&gt;(It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;my&amp;nbsp;life)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;（这是我的人生）&amp;nbsp;&lt;br /&gt;My&amp;nbsp;heart&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;like&amp;nbsp;an&amp;nbsp;open&amp;nbsp;highway&amp;nbsp;&lt;br /&gt;我的心像是开放的高速公路&amp;nbsp;&lt;br /&gt;Like&amp;nbsp;Frankie&amp;nbsp;said&amp;nbsp;&lt;br /&gt;就像法兰克辛那屈唱的：&amp;nbsp;&lt;br /&gt;I&amp;nbsp;did&amp;nbsp;it&amp;nbsp;my&amp;nbsp;way&amp;nbsp;&lt;br /&gt;我走自己的路&amp;nbsp;&lt;br /&gt;I&amp;nbsp;just&amp;nbsp;wanna&amp;nbsp;live&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;I&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;m&amp;nbsp;alive&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我只想趁活著的时候认真的生活&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chorus:&amp;nbsp;&lt;br /&gt;It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;my&amp;nbsp;life&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;这是我的人生&amp;nbsp;&lt;br /&gt;It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;now&amp;nbsp;or&amp;nbsp;never&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;把握现在，机会稍纵即逝&amp;nbsp;&lt;br /&gt;I&amp;nbsp;ain&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;t&amp;nbsp;gonna&amp;nbsp;live&amp;nbsp;forever&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我不希望长生不死&amp;nbsp;&lt;br /&gt;I&amp;nbsp;just&amp;nbsp;want&amp;nbsp;to&amp;nbsp;live&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;I&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;m&amp;nbsp;alive&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我只想趁活著得时候认真的生活&amp;nbsp;&lt;br /&gt;(It&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;s&amp;nbsp;my&amp;nbsp;life)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;（这是我的人生）&amp;nbsp;&lt;br /&gt;My&amp;nbsp;heart&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;like&amp;nbsp;an&amp;nbsp;open&amp;nbsp;highway&amp;nbsp;&lt;br /&gt;我的心像是开放的高速公路&amp;nbsp;&lt;br /&gt;Like&amp;nbsp;Frankie&amp;nbsp;said&amp;nbsp;&lt;br /&gt;就像法兰克辛那屈唱的：&amp;nbsp;&lt;br /&gt;I&amp;nbsp;did&amp;nbsp;it&amp;nbsp;my&amp;nbsp;way&amp;nbsp;&lt;br /&gt;我走自己的路&amp;nbsp;&lt;br /&gt;I&amp;nbsp;just&amp;nbsp;wanna&amp;nbsp;live&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;I&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;m&amp;nbsp;alive&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;我只想趁活著的时候认真的生活&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Cause&amp;nbsp;it&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;s&amp;nbsp;my&amp;nbsp;life&amp;nbsp;&lt;br /&gt;这是我的人生&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;回顾麦克格雷迪的过去的成长历程,非常令人惊叹,不得不说,麦克格雷迪是一个天才球员,更是一个好球员：【&lt;span style="color: #3366ff"&gt;2002年秋，&lt;/span&gt;&lt;span style="color: #3366ff"&gt;得知华盛顿狙击案的受害者&amp;#8212;&amp;#8212;13岁的伊安-布朗（Iran Brown）想要自己的签名，他给布朗寄去了自己的球衣、签名、还有亲口祝福康复的录像带，在布朗的情况有所好转后，邀请到奥兰多旅游并观看训练，12/25/02，魔术主场与活塞圣诞大战，此前已因伤停战3场的T-Mac复出，砍下46分，为场边的布朗献上一场胜利&lt;/span&gt;】 球场外的麦克格雷迪一直令我感动,你可以查看相关资料。&lt;/p&gt;&#xD;
&lt;p&gt;今天，视频中钢琴和高亢的嗓音令我震撼,麦蒂的辉煌与伤感令我神伤,下个赛季还不知道麦克格雷迪何去何从,但不管怎样,我都会一致支持你&amp;#8212;&amp;#8212;永远的特雷西&amp;#183;麦克格雷迪！&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/1794573.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/archive/2010/08/07/1794573.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yizuierguo/archive/2010/08/04/1792287.html</id><title type="text">三谈Iframe自适应高度[转自口碑网UED博客]</title><summary type="text">[代码]在构建B/S系统界面的时候，经常会遇到主页面index.html中嵌套其他页面的情况 ，虽然已经有的库已经提供了控件(例如jQuery easy UI),但是有时候iframe的使用是不可避免的,这篇文章应该给你一个相对来说比较实用的答案,正象文章所说,互联网上的大部分东西都是垃圾或者是不可相信的！原文有KOUBEI UED 由校 整理！为什么是三谈  为什么是三谈呢？一是因为这真的是一个...</summary><published>2010-08-04T08:08:00Z</published><updated>2010-08-04T08:08:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/archive/2010/08/04/1792287.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/archive/2010/08/04/1792287.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;说明：本篇文章转自口碑网UED博客，原文地址：http:&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;ued.koubei.com/?p=1217&amp;nbsp; 转载请作必要的版权说明,谢谢！&lt;/span&gt;&lt;/div&gt;&lt;p&gt;在构建B/S系统界面的时候，经常会遇到主页面index.html中嵌套其他页面的情况 ，虽然已经有的库已经提供了控件(例如jQuery easy UI),但是有时候iframe的使用是不可避免的,这篇文章应该给你一个相对来说比较实用的答案,正象文章所说,互联网上的大部分东西都是垃圾或者是不可相信的！原文有KOUBEI UED&amp;nbsp; 由校 整理！&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;为什么是三谈&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div&gt; &lt;p&gt;为什么是三谈呢？一是因为这真的是一个被说烂的话题，二是因为太师傅在n年前就写过这篇&lt;a href="http://ued.koubei.com/?p=243"&gt;再谈iframe自适应高度&lt;/a&gt;。之所以再提该问题，是因为之前项目中确实遇到了这个问题的方方面面，有必要总结一下。希望对各位有帮助，有错误请指正。&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;同域、子页面高度不会动态增加&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div&gt; &lt;p&gt;这种情况最简单，直接通过脚本获取字页面实际高度，修改&lt;code&gt;iframe&lt;/code&gt;元素高度即可。但有二点必须注意：&lt;/p&gt; &lt;ol&gt;&lt;li&gt;如果页面内有&lt;em&gt;绝对定位&lt;/em&gt;或者&lt;em&gt;没有清浮动&lt;/em&gt;的元素，情况有些复杂，不同浏览器处理结果不同，甚至包括&lt;em&gt;Webkit&lt;/em&gt;内核的浏览器，具体请看这个&lt;a href="http://www.zhouqicf.com/demo/js/2010/iframe_height/different_broswer_height.html"&gt;Demo&lt;/a&gt;。所以你要么进行浏览器检测，要么用&lt;code&gt;Math.max&lt;/code&gt;计算一个最大值，要么你想别的方法。   &lt;/li&gt;&lt;li&gt;&lt;code&gt;iframe&lt;/code&gt;所包含页面可能非常大，需要很长的加载时间，为此直接计算高度的时候，很可能页面还没下载完，高度计算就会有问题。所以最好在&lt;code&gt;iframe&lt;/code&gt;的&lt;code&gt;onload&lt;/code&gt;事件中计算高度。这里还要注意的是，IE下必须使用微软事件模型&lt;code&gt;obj.attachEvent&lt;/code&gt;来绑定&lt;code&gt;onload&lt;/code&gt;事件。而别的浏览器直接&lt;code&gt;obj.onload  = function(){}&lt;/code&gt;也可以。&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frame&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;document.getElementById(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;frame_content_parent&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setIframeHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frameContent&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frame.contentWindow.document,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frameHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Math.max(frameContent.body.scrollHeight,frameContent.documentElement.scrollHeight);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frame.height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frameHeight;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(frame.addEventListener){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frame.addEventListener(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;load&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,setIframeHeight,&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frame.attachEvent(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;onload&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,setIframeHeight);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;})();&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;同域、子页面高度会动态增加&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;原理与第一种情况一样，多一个计时器，一直检测字页面高度，当子页面高度和&lt;code&gt;iframe&lt;/code&gt;的高度不一致时，重新设置&lt;code&gt;iframe&lt;/code&gt;的高度。这边也可以加一个&lt;code&gt;try&lt;/code&gt;在js出错时，加一个足够的高度。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_reSetIframe&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frame&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;document.getElementById(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;frame_content_parent&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frameContent&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frame.contentWindow.document,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bodyHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Math.max(frameContent.body.scrollHeight,frameContent.documentElement.scrollHeight);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(bodyHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frame.height){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frame.height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;bodyHeight;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt;(ex)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frame.height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1800&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(frame.addEventListener){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frame.addEventListener(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;load&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){setInterval(_reSetIframe,&lt;/span&gt;&lt;span style="color: #000000;"&gt;200&lt;/span&gt;&lt;span style="color: #000000;"&gt;);},&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frame.attachEvent(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;onload&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){setInterval(_reSetIframe,&lt;/span&gt;&lt;span style="color: #000000;"&gt;200&lt;/span&gt;&lt;span style="color: #000000;"&gt;);});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;})();&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;同域、子页面高度会动态增加、脚本可能完全失效&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div&gt; &lt;p&gt;第二个例子中，考虑到了脚本出错的情况，但是万一脚本根本不执行了呢，那&lt;code&gt;iframe&lt;/code&gt;中的内容就会因为&lt;code&gt;iframe&lt;/code&gt;的高度不够而显示不了。为此我们通常事先设置一个足够的高度，为了前端控制方便，我觉得写在CSS文件中比较合适，需要修改时只改CSS就行了。这里我设置了&lt;code&gt;selector{  height:1800px;  }&lt;/code&gt;。需要注意的是，写在样式表里的样式，不能直接用&lt;code&gt;node.style[property]&lt;/code&gt;来取，对于微软模型，要用&lt;code&gt;node.currentStyle[property]&lt;/code&gt;（题外话：悲剧的IE模型不支持CSS伪类），对于W3C模型，要用&lt;code&gt;window.getComputedStyle(node,null)[property]&lt;/code&gt;来取。我这里图方便直接用了YUI。&lt;/p&gt; &lt;p&gt;这里又有一个问题，设置&lt;code&gt;iframe&lt;/code&gt;的高度大于其包含页面的高度时，各个浏览器的处理不一样。例如在Firefox下，必须计算&lt;code&gt;body&lt;/code&gt;元素的高度，而&lt;code&gt;html&lt;/code&gt;元素的高度等于&lt;code&gt;iframe&lt;/code&gt;的高度，然而当恰巧这个页面又有&lt;em&gt;绝对定位&lt;/em&gt;、&lt;em&gt;未清浮动&lt;/em&gt;元素时，又不能通过&lt;code&gt;body&lt;/code&gt;元素来取，显然第一种方法缺点更小一些。具体请看这个&lt;a href="http://demo.zhouqicf.com/js/2010/iframe_height/iframe_higher.html"&gt;Demo&lt;/a&gt;。&lt;/p&gt; &lt;p&gt;从上面这个Demo可以看到，除IE浏览器外，别的浏览器计算出来的都是&lt;code&gt;iframe&lt;/code&gt;的高度，即CSS里设置的&lt;code&gt;#frame_content_parent{  height:1800px; }&lt;/code&gt;。而IE计算出来的是&lt;code&gt;iframe&lt;/code&gt;所引用页面的实际高度。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;#frame_content_parent{&amp;nbsp;height:1800px;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;$&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;YAHOO.util.Dom,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frame&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;$.get(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;frame_content_parent&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;reSetIframe(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frameContent&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frame.contentWindow.document,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bodyHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Math.max(frameContent.documentElement.scrollHeight,frameContent.body.scrollHeight);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(bodyHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;$.getStyle(frame,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;height&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.setStyle(frame,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;height&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;bodyHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(frame){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.setStyle(frame,&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;height&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;auto&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setInterval(reSetIframe,&lt;/span&gt;&lt;span style="color: #000000;"&gt;300&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;})();&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;跨域&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div&gt; &lt;p&gt;这里提供一个Iframe代理的方法，简单地说一下原理。假设有3个页面，分别是主页面A.html，字页面B.html，代理页面C.html。其中A与B是跨域的，而A和C是同域的。它们的关系：A包含B，B包含C。很显然A和B，以及B和C，因为跨域不能相互通信，而A和C同域，可以相互通信。为此我们就想到让C页面告诉A页面，B页面到底有多少高。因为B和C也是跨域的不能相互通信，所以想在C页面中，直接&lt;code&gt;window.parent.document.body.scrollHeight&lt;/code&gt;这样是行不通的，所以我们只能让B页面自己计算自身的高度，然后通过某种方法告诉C页面，再由C页面告诉A页面。这里的一个方法就是在B页面生成一个&lt;code&gt;Iframe&lt;/code&gt;节点，然后设置它的&lt;code&gt;src&lt;/code&gt;属性，在这个地址上附加一个参数，即B页面计算出来的高度，然后C页面就可以通过&lt;code&gt;window.location&lt;/code&gt;获取这个地址栏中的地址，提取出高度值，通过&lt;code&gt;window.top&lt;/code&gt;找到A页面，设置A页面的Iframe的高度。基本的原理就是这样，看代码吧：&lt;/p&gt; &lt;p&gt;&lt;a href="http://demo.zhouqicf.com/js/2010/iframe_height/iframe_height_different_area_once.html"&gt;DEMO&lt;/a&gt;&lt;/p&gt; &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;B页面脚本&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;任务：计算其实际高度，然后生成一个iframe节点，将高度作为代理页面C的地址的一部分赋值给Src属性&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;agent_iframe&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;document.createElement(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;iframe&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b_height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;agent_iframe.src&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;http://demo.zhouqicf.com/js/2010/iframe_height/agent_iframe_once.html#&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;b_height;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.body.appendChild(agent_iframe);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;agent_iframe.style.display&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;none&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;})();&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;C页面脚本&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;任务：获取请求地址中的高度值，将其赋值给A页面的Iframe的高度&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;window.top.document.getElementById(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;frame_content_parent&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;).height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;parseInt(window.location.hash.substring(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;跨域、字页面高度动态变化&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div&gt; &lt;p&gt;这里结合了第2、第4两种方法，我的想法是在B页面通过一个计时器，不停计算B页面的高度，一但变化，马上修改&lt;code&gt;iframe&lt;/code&gt;标签的&lt;code&gt;src&lt;/code&gt;属性，而C页面也有计时器不断监听&lt;code&gt;src&lt;/code&gt;的变化，改变A&lt;code&gt;iframe&lt;/code&gt;标签的高度。需要注意的是仅仅修改&lt;code&gt;src&lt;/code&gt;属性后面的锚点值（如&amp;#8220;#1234&amp;#8221;），页面并不会刷新，不会重新请求，这也是在C页面增加计时器的原因。&lt;/p&gt; &lt;p&gt;&lt;a href="http://demo.zhouqicf.com/js/2010/iframe_height/iframe_height_different_area.html"&gt;DEMO&lt;/a&gt;&lt;/p&gt; &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;B页面脚本&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;getHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;preHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;getHeight(),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;agent_iframe;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;createIframe&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(height){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;agent_iframe&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;document.createElement(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;iframe&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;agent_iframe.style.height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;agent_iframe.style.width&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;agent_iframe.style.border&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;none&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;agent_iframe.src&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;http://demo.zhouqicf.com/js/2010/iframe_height/agent_iframe.html#&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;height;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.body.appendChild(agent_iframe);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;createIframe(preHeight);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;checkHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;currentHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;getHeight();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(currentHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;preHeight){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;agent_iframe.src&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;http://demo.zhouqicf.com/js/2010/iframe_height/agent_iframe.html#&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;currentHeight;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;preHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;currentHeight;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(checkHeight,&lt;/span&gt;&lt;span style="color: #000000;"&gt;500&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(checkHeight,&lt;/span&gt;&lt;span style="color: #000000;"&gt;500&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;})();&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;C页面脚本&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;preHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;parseInt(window.location.hash.substring(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ifrmae&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;window.top.document.getElementById(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;frame_content_parent&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ifrmae.height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;preHeight;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setInterval(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;newHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;parseInt(window.location.hash.substring(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(newHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!==&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;preHeight){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ifrmae.height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;newHeight;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;preHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;newHeight;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/span&gt;&lt;span style="color: #000000;"&gt;500&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;})();&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;这里还有另一种方案，就是让&lt;code&gt;iframe&lt;/code&gt;每一次都重新请求，这样C页面就不需要计时器了，但是如果2次计算高度重复的话，就会导致&lt;code&gt;src&lt;/code&gt;属性的值相同，这样浏览器就很可能不重新请求该页面了，那么C页面中的脚本也就不运行了。要修复这个问题很简单，只要在每次计算出来的&lt;code&gt;src&lt;/code&gt;属性上增加一个随机数的参数就行了。比如&lt;code&gt;http://demo.zhouqicf.com/js/2010/iframe_height/agent_iframe.html?temp=123123423712937#1563&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;B页面关键脚本&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;agent_iframe.src&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;http://demo.zhouqicf.com/js/2010/iframe_height/agent_iframe.html?a=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Math.random()&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;#&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;currentHeight;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;C页面脚本&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;window.top.document.getElementById(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;frame_content_parent&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;).height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;parseInt(window.location.hash.substring(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/1792287.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/archive/2010/08/04/1792287.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yizuierguo/archive/2010/07/24/1784112.html</id><title type="text">淘宝，我来了!</title><summary type="text">这是一次面试经历：经朋友推荐，发了份简历给他，第三天左右就接到淘宝的面试电话，说晚上进行电话面试，好吧，我开始紧张，而且这个词一直伴随我接到HR的电话说拿到offer letter为止,正所谓,余感绕心，数日不绝...说道前端，说道淘宝，说道UED，大家都知道的，可能就是因为太想进去吧，紧张了很多!晚上的电话面试自我感觉良好,问的技术不是很难,技术上主要问的两个问题是CSS sprites和如何实...</summary><published>2010-07-23T23:37:00Z</published><updated>2010-07-23T23:37:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/archive/2010/07/24/1784112.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/archive/2010/07/24/1784112.html"/><content type="html">&lt;p&gt;这是一次面试经历：&lt;/p&gt;&#xD;
&lt;p&gt;经朋友推荐，发了份简历给他，第三天左右就接到淘宝的面试电话，说晚上进行电话面试，好吧，我开始紧张，而且这个词一直伴随我接到HR的电话说拿到offer letter为止,正所谓,余感绕心，数日不绝...&lt;/p&gt;&#xD;
&lt;p&gt;说道前端，说道淘宝，说道UED，大家都知道的，可能就是因为太想进去吧，紧张了很多!&lt;/p&gt;&#xD;
&lt;p&gt;晚上的电话面试自我感觉良好,问的技术不是很难,技术上主要问的两个问题是CSS sprites和如何实现圆角效果,其他的问题就是平时爱好，优缺点，如何学习新技术等等，奇怪是四轮面试下来都问到了是否有女朋友，关系怎么样,这个我很费解......&lt;/p&gt;&#xD;
&lt;p&gt;好吧,电话面试就过去了......&lt;/p&gt;&#xD;
&lt;p&gt;第二天又接到电话，说可以来淘宝面试了，又开始紧张，因为不知道会问什么，毕竟机会难得，好吧，把我能准备的东西都看了一遍，什么关于新技术的，框架应用的，IE和FF那些兼容问题的，性能优化的......这样一看我才发现，东西可真多，尽量都看了一遍，据说偏好于新技术问题，我又把html5+css3,ie9和ff4的情况看了一遍(我也不知道这些算不算是新技术.......)&lt;/p&gt;&#xD;
&lt;p&gt;好吧,之前的一天就过去了......&lt;/p&gt;&#xD;
&lt;p&gt;面试的日子来了，中午11：30坐车开始出发，本来想吃中饭再过去了,后来感觉没什么胃口,于是直接杀向淘宝，到了一楼大厅，距离面试约定时间还有40分钟左右,先不着急上去(建议大家整理下思绪,给自己调整一下)，又回顾了一下可能面试的重点，好了，12：45坐电梯上去6楼,到前台MM那里索取表格,填写,填了一半发现面试官来了,是&lt;a title="圆心" href="http://www.planabc.net/"&gt;圆心&lt;/a&gt;和&lt;a href="http://blog.silentash.com/"&gt;渔隐&lt;/a&gt;，好吧，我更加紧张,给了我份面试题,30分钟差不多，没做完，有个题写html的语义化，很烦人有点长,还有个js的问题，不怎么会.&lt;/p&gt;&#xD;
&lt;p&gt;之后开始聊天，他们两个穿插问了我很多问题，又问到了你有没有女朋友之类,这个我真的不理解.&lt;/p&gt;&#xD;
&lt;p&gt;技术面试，个人感觉他们更关注你的成长空间，潜力，不是现在的能力,是你的学习能力......&lt;/p&gt;&#xD;
&lt;p&gt;好吧,第一轮技术面试过了,他们让我在那里等,肚子开始有点饿了......&lt;/p&gt;&#xD;
&lt;p&gt;第二轮,hr的来了,一个说话很好听的MM,不一会又来了一个大叔,呵呵，开始对侃，我最喜欢HR的面试，明显这轮话比之前的多了很多，就是那些问题，我就不重复了，又问到了是否有女朋友，更扯的是还问了什么星座.....&lt;/p&gt;&#xD;
&lt;p&gt;好吧，HR的面试结束了，那个MM让我等下，说还有个高管面试，等吧，我真的饿了,而且感觉头晕，不是吧，难道中暑？据说紧张的时候容易中暑，今天有37&amp;#176;......&lt;/p&gt;&#xD;
&lt;p&gt;等了大约30分钟,传说中的神秘人物出现了,自报了下花名,我没听过(二当家)，我对他手里拿的IPAD比较感兴趣,呵呵。&lt;/p&gt;&#xD;
&lt;p&gt;又是对侃，又问有没有女朋友，啥时候结婚，什么星座之类......（oh&amp;nbsp; my&amp;nbsp; god!）&lt;/p&gt;&#xD;
&lt;p&gt;好吧，面试结束了！&lt;/p&gt;&#xD;
&lt;p&gt;第二天，接到了第二轮的HRMM的电话，说拿到offer letter了，很高兴，压力感来了......&lt;/p&gt;&#xD;
&lt;p&gt;昨天晚上起草了一份最近的学习计划,需要提升的技能，感觉有很多不会的:&lt;/p&gt;&#xD;
&lt;p&gt;1.加强html语义化的学习,（其实我原来的语义化不错的，只不过现在项目中用的比较少，杯具）&lt;/p&gt;&#xD;
&lt;p&gt;2.css 960框架，淘宝是用960框架的，之前看过，但是没研究过，所以要研究下&lt;/p&gt;&#xD;
&lt;p&gt;3.js提升,主要是OOP方面， YUI&lt;/p&gt;&#xD;
&lt;p&gt;4.相关前端性能优化的知识&lt;/p&gt;&#xD;
&lt;p&gt;5.调试工具的知识&lt;/p&gt;&#xD;
&lt;p&gt;最后给自己取一个好点的花名,其实我感觉&lt;span style="font-size: 14pt"&gt;一醉&lt;/span&gt;这名字不错，不过人家要求是武侠小说中的人物,我武侠小说看的少...&lt;/p&gt;&#xD;
&lt;p&gt;期待入职，期待淘宝!&lt;/p&gt;&#xD;
&lt;p&gt;真正的挑战来了,加油！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/1784112.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/archive/2010/07/24/1784112.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yizuierguo/archive/2010/07/14/1777090.html</id><title type="text">关于cssText属性</title><summary type="text">给一个html元素设置css属性,传统做法：[代码]这样写很烦，尤其是很多的时候，一个样式一行,天啊！工具函数 :[代码]使用cssText属性,想怎么写就怎么写：[代码]跟书写CSS一样，还可以支持属性值缩写border:#000 solid 1px; 测试浏览器版本如下(与浏览器模式无关)： IE 6/7 IE 8 (Emulate IE7) IE 8 (Enforce IE8) Opera ...</summary><published>2010-07-14T03:16:00Z</published><updated>2010-07-14T03:16:00Z</updated><author><name>一醉而过</name><uri>http://www.cnblogs.com/yizuierguo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yizuierguo/archive/2010/07/14/1777090.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yizuierguo/archive/2010/07/14/1777090.html"/><content type="html">&lt;p&gt;给一个html元素设置css属性,传统做法：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;mybox&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;document.getElementById(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;mybox&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&lt;br /&gt;mybox.style.width&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;200px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;mybox.style.height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;70px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;mybox.style.display&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;block&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;这样写很烦，尤其是很多的时候，一个样式一行,天啊！&lt;/p&gt;&lt;p&gt;工具函数 :&lt;br /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;setStyle(obj,css){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;atr&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;css)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;obj.style[atr]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;css[atr];&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;mybox&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;document.getElementById(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;mybox&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;setStyle(mybox,{width:&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;200px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,height:&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;70px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,display:&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;block&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;})&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;使用cssText属性,想怎么写就怎么写：&lt;br /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;mybox&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;document.getElementById(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;mybox&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mybox.style.cssText&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;width:200px;height:70px;display:bolck&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;跟书写CSS一样，还可以支持属性值缩写border:#000 solid 1px; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;测试浏览器版本如下(与浏览器模式无关)：&lt;/p&gt; &lt;span style="border-collapse: separate; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; white-space: normal; font-family: Simsun; color: #000000; font-size: medium;"&gt;&lt;span style="font-size: 13px; font-family: Verdana;"&gt;IE 6/7&lt;br /&gt; IE 8 (Emulate IE7) &lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;IE 8 (Enforce IE8)&lt;/div&gt; &lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;Opera 10.10&lt;br /&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;Firefox 3.5.6&lt;br /&gt; Safari 4.0.3&lt;br /&gt; Chrome 4.0.266.0 &lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yizuierguo/aggbug/1777090.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yizuierguo/archive/2010/07/14/1777090.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
