<div class="floatRPic">
<a title="javascript的面向对象" href="http://justinyoung.cnblogs.com/" target="_blank"><img alt="web标准设计" src="http://images.cnblogs.com/cnblogs_com/justinyoung/2007/oo.jpg"></a><br>
OO不是(.)(.)</div>
<p><font>惭愧,惭愧,JavaScript一直是俺的软肋。特别是对Javascript模拟面向对象编程这块,一看到javascript代码中含有什么prototype,"=function()"这样的代码,就敬如神明,心想定是高手所为。这段时间一直在看《Javascript高级程序设计》这本书,其中有些章节,就专门讲道了这个方面,看后,不敢说了然于胸,但是倒是也能够写个小程序,体验了一把。嘿嘿……JavaScript,今天咱也OO一把。</font></p>
<p>这个例子很简单,也很实用,就是在博客园的博客上方,显示一篇随机推荐的文章。这样,有时候,碰巧,能粘住浏览者一会。呵呵~</p>
<h5>小打小闹,高人回避~</h5>
<h4>先说一下,实现思想</h4>
<h5>1:每篇推荐文章都是一个对象</h5>
<p>这个对象有2个属性(URL和Title),分别是文章的URL地址和文章标题,和一个方法(commendMe),用于将自己添加到top导航栏后面。</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">
<span style="color: #0000ff;">function</span><span style="color: #000000;">article(sURL,sTitle){<br></span><span style="color: #0000ff;">this</span><span style="color: #000000;">.URL</span><span style="color: #000000;">=</span><span style="color: #000000;">sURL;<br></span><span style="color: #0000ff;">this</span><span style="color: #000000;">.title</span><span style="color: #000000;">=</span><span style="color: #000000;">sTitle;<br>
}<br>
article.prototype.URL</span><span style="color: #000000;">=</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(){<br></span><span style="color: #0000ff;">return</span><span style="color: #000000;">(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.URL);<br>
}<br>
article.prototype.title</span><span style="color: #000000;">=</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(){<br></span><span style="color: #0000ff;">return</span><span style="color: #000000;">(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.title);<br>
}<br>
article.prototype.commendMe</span><span style="color: #000000;">=</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(){<br></span><span style="color: #0000ff;">var</span><span style="color: #000000;">comArticleURL</span><span style="color: #000000;">=</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.URL;<br></span><span style="color: #0000ff;">var</span><span style="color: #000000;">comArticleTitle</span><span style="color: #000000;">=</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.title;<br></span><span style="color: #0000ff;">var</span><span style="color: #000000;">commendatoryArticleHTML</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;<imgstyle=\</span><span style="color: #000000;">"</span><span style="color: #000000;">position:relative;top:3px;\</span><span style="color: #000000;">"</span><span style="color: #000000;">src=\</span><span style="color: #000000;">"</span><span style="color: #000000;">http:</span><span style="color: #008000;">//</span><span style="color: #008000;">www.cnblogs.com/images/cnblogs_com/justinyoung/2007/broadcast.gif\"alt=\"推荐阅读文章\"/>推荐阅读:"+"<atitle=\""+comArticleTitle+"\"href=\""+comArticleURL+"\">"+comArticleTitle+"</a>";;</span><span style="color: #008000;"><br></span><span style="color: #000000;"></span><span style="color: #0000ff;">var</span><span style="color: #000000;">mylinks</span><span style="color: #000000;">=</span><span style="color: #000000;">document.getElementById(</span><span style="color: #000000;">"</span><span style="color: #000000;">mylinks</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #0000ff;">var</span><span style="color: #000000;">commendatoryArticle</span><span style="color: #000000;">=</span><span style="color: #000000;">document.createElement('span');<br>
commendatoryArticle.innerHTML</span><span style="color: #000000;">=</span><span style="color: #000000;">commendatoryArticleHTML;<br>
mylinks.appendChild(commendatoryArticle);<br>
}<br></span>
</div>
<p>2:定义一个数组,数组里面包含很多的文章对象</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">
<span style="color: #000000;"></span><span style="color: #0000ff;">var</span><span style="color: #000000;">articleList</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">Array();<br>
articleList[</span><span style="color: #000000;">0</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">article(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.cnblogs.com/JustinYoung/archive/2007/10/31/dead-of-typer.html</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">利用《死亡打字员》提高程序员的命根子技能</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>
articleList[</span><span style="color: #000000;">1</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">article(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.cnblogs.com/JustinYoung/archive/2007/11/08/952833.html</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">【CSS翻转门】技术实例讲解(附源码下载)</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>
articleList[</span><span style="color: #000000;">2</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">article(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.cnblogs.com/JustinYoung/archive/2007/11/20/speeding-up-web-site-14rule.html</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">如何提高网页的效率(上篇)</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>
articleList[</span><span style="color: #000000;">3</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">article(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.cnblogs.com/JustinYoung/archive/2007/11/28/speeding-up-web-site-yslow.html</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">如何提高网页的效率(下篇)</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span>
</div>
<h5>3:调用对象方法,完成添加</h5>
<div class="floatRPic">
<a title="javascript的面向对象" href="http://justinyoung.cnblogs.com/" target="_blank"><img alt="web标准设计" src="http://images.cnblogs.com/cnblogs_com/justinyoung/2007/commendArticle.jpg"></a><br>
完成的效果图</div>
<p>在window.onload的时候,从数组里面随机选出一个元素,然后调用这个元素(对象)的commendMe方法,从而完成添加。</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 427px; padding-top: 4px; border-bottom: #cccccc 1px solid; height: 111px; background-color: #eeeeee;">
<span style="color: #000000;">window.onload</span><span style="color: #000000;">=</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(){<br></span><span style="color: #0000ff;">var</span><span style="color: #000000;">randomNum</span><span style="color: #000000;">=</span><span style="color: #000000;">parseInt(articleList.length</span><span style="color: #000000;">*</span><span style="color: #000000;">Math.random());<br>
articleList[randomNum].commendMe();<br>
articleList</span><span style="color: #000000;">=</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;</span><span style="color: #008000;">//</span><span style="color: #008000;">释放资源</span><span style="color: #008000;"><br></span><span style="color: #000000;">}</span>
</div>
<p>你可以通过,查看本页的源代码清楚的看到这些代码片断。</p>
<h4>另记:</h4>
<p>周末,花了一些时间,修正了一下,博客的侧边栏代码和底部代码,在Firefox里面终于没有脚本错误了(主要就是Firefox对insertAdjacentElement支持的不好惹得祸,换成appendChild就好了)。这下,在Firefox下也能完美的浏览了。嘿嘿~(窃喜中……)</p>
<hr align="left" width="80%">
Tag标签:<span style="font-size: 80%; color: #666;">javascript 面向对象,面向对象的javascript,javascript 对象,javascript的对象,javascript中的对象,javascript对象详解,javascript缺少对象,javascript面向对象程序设计,javascript prototype,firefox insertAdjacentElement,appendChild</span>
分享到:
相关推荐
至少每个尝试JavaScriptOO的程序员都花费很多精力用在... 然而虽然各个框架都有对JavaScriptOO模拟,但还未到有谁谁谁可以一桶糨糊的时候吧. 或许江湖就不需要的霸主出现,抑或大家只要等到JS2.0+就好了. 如果说可以ne
本资源是《Javascript参考手册》,格式是html版本,FF和IE下都可以正常使用。参考手册简洁,通过可...本参考文档只是把其中的内容提出来,效果图预览: http://img.my.csdn.net/uploads/201210/25/1351129247_9090.png
本文主要介绍了如何使用JavaScript来统计一个字符串中各个字符的出现次数。这一技术对于处理文本数据、分析用户输入等场景非常有用。文章提供了两种不同的方法实现这一功能,并通过示例代码详细解释了每种方法的工作...
- **Webpack**: 一个用于 JavaScript 应用程序的模块打包器。 - **CSS Modules**: 允许 CSS 文件具有局部作用域,以避免样式冲突。 - **MiniCssExtractPlugin**: Webpack 插件,用于把 CSS 提取到单独的文件中。 - *...
以上列举的技巧只是提升 JavaScript 代码质量的一小部分方法。通过实践这些技巧,开发者不仅可以写出更加优雅和高效的代码,还能提高团队协作效率,减少后期维护成本。当然,最重要的是根据具体项目的需求灵活运用...
### JavaScript TypeScript 实现并发请求控制 ...这种方法不仅适用于模拟环境,在实际项目中也非常实用。此外,通过合理利用`Promise.race`和`Promise.all`等工具,可以实现更加灵活和高效的并发控制策略。
`reduce`是JavaScript数组的一个内置方法,用于将数组中的所有元素结合成一个单一的值。它接受一个回调函数(reducer)和一个可选的初始值(initialValue)。reducer函数接收两个参数:累积器(accumulator)和当前...
在JavaScript和Vue.js中,日期格式化是一种常见的需求,它帮助我们把日期对象转换成易于阅读的字符串形式。Vue.js提供了自定义过滤器(filter)的功能,让我们能够方便地处理和展示数据,包括日期格式化。以下是一个...
// 拷贝语法,把obj内的属性和属性值拷贝给targetObj一个空对象 console.log(targetObj); // 输出结果是obj对象里面的内容 ``` 上述代码展示了最简单的浅拷贝案例。`targetObj` 最初为空对象,通过 `$.extend...
这里我们介绍如何使用`webpack-obfuscator`这一强大的JavaScript混淆工具来实现这个目的。 `webpack-obfuscator`是一个用于webpack的插件,它能够对构建出的JavaScript代码进行深度混淆,包括添加随机废代码、字符...
本文将详细介绍一个基于JavaScript的脚本,用于实现在JSP页面上进行简体与繁体中文的动态转换。 #### 代码分析 首先,我们来看一下这段代码的主要逻辑结构: 1. **QueryString函数**:这个函数用于从URL查询字符...
默认情况下,日期选择器返回的是一个完整的 JavaScript Date 对象,但有时我们需要将其格式化为特定字符串,如 "2020-01-11"。通过在 `el-date-picker` 的 `value-format` 属性中设置 "yyyy-MM-dd",我们可以确保...
闭包是JavaScript中一个重要的概念,同时也是学习过程中的一个难点。对于许多开发者来说,虽然接触过不少关于闭包的文章,但真正能够深入理解并灵活运用闭包的并不多。这主要是因为闭包涉及到一系列相互关联的知识点...
ECharts是一款由百度开发的基于JavaScript的数据可视化库,它提供了丰富的图表类型,易于使用且功能强大。在Vue 3.0中集成ECharts,可以让我们在前端应用中轻松地实现数据可视化。 首先,为了在Vue 3.0项目中使用...
Base64 是一种编码方式,可以把二进制数据转化为可打印的 ASCII 字符串。在 HTML 中,可以直接将 Base64 编码的字符串作为 `src` 属性的值,例如: ```html ;base64,iVBYKIGloxxxxxxxxxxxxxxxxxxx..."> ``` 这种...
这将把 Echarts 安装为项目的依赖,并将其写入 `package.json` 文件。接下来,在 `main.js` 文件中,你需要导入 Echarts 并将其挂载到 Vue 的原型对象上,以便在 Vue 组件中可以方便地访问。`main.js` 的代码如下: ...
Vue.js是一个轻量级的前端框架,而ECharts则是一个强大的、基于JavaScript的数据可视化库。将Vue与ECharts结合,我们可以创建出交互性强、表现力丰富的数据可视化大屏。本文将详细讲解如何在Vue项目中集成ECharts并...
这个项目是针对Epicodus的JavaScript面向对象(OO)课程的一部分,旨在帮助学习者理解JavaScript中的对象和类的概念。 1. **构造函数**: 构造函数在JavaScript中是用来初始化一个新创建的对象的特殊函数。在地址...