01 2012 档案
摘要:在我们经常面对的面向对象高级语言中,继承早已是老生常谈的话题了。但对于javascript这门极富灵活性的语言来说,继承却是一门复杂的技术。那么继承到底能带来什么好处呢?如果我们希望减少更多的重复性工作,弱化对象间的耦合性,在现有类的基础上并充分利用已具备的方法进行设计,那么继承不失为一种更好的解决方案了。为了能达到我们想要的目标,可以采用类式继承,也可以采用原型式继承。可能有的人会问:我有两个类并没有所谓的"is a"的关系,但却都有个相同的方法要调用,我该怎么办?我们知道,在面向对象中可以采用接口去实现。在本篇文章中,我采用混元类的方式来解决这种问题并会探讨适合场景。
阅读全文
摘要:在"初识Javascript"章节中,提到通过作用域和闭包来隐藏内部细节,并给外部提供访问接口,就初次接触到了信息隐藏的概念了。同时,我们知道在面向对象的高级语言中,创建包含私有成员的对象是最基本的特性之一,提供属性和方法对私有成员进行访问来隐藏内部的细节。虽然JS也是面向对象的,但没有内部机制可以直接表明一个成员是公有还是私有的。还是那句话,依靠JS的语言灵活性,我们可以创建公共、私有和特权成员,信息隐藏是我们要实现的目标,而封装是我们实现这个目标的方法。我们还是从一个示例来说明:创建一个类来存储图书数据,并实现可以在网页中显示这些数据。1. 最简单的是完全暴露对象。使用
阅读全文
摘要:接口是面向对象Javascript工具箱中最有用的特性之一。我们都知道GOF在设计模式中说到:面向接口编程,而非面向实现编程。就足以说明接口在面向对象的领域中有多重要。但JS却不像其他面向对象的高级语言(C#,Java,C++等)拥有内建的接口机制,以确定一组对象和另一组对象包含相似的的特性。所幸的是JS拥有强大的灵活性(我在上文已谈过),这使得模仿接口特性又变得非常简单。那么到底是接口呢? 接口,为一些具有相似行为的类之间(可能为同一种类型,也可能为不同类型)提供统一的方法定义,使这些类之间能够很好的实现通信。那使用接口到底有哪些好处呢?简单地说,可提高系统相似模块的重用性,使得不同类的通信
阅读全文
摘要:Javascript是一门极富表现力的语言,在当今大行其道的Web浪潮中扮演着非常关键的作用。合理、高效地利用这门技术,可以让我们的Web世界多姿多彩。首先,我们认识一下这门技术的几个独特的特性。1. Javascript最大的特性在于其灵活性。作为一名前端开发人员,既可以采用函数式的编程风格,也可以采用更复杂一点的面向对象的编程风格。不管你采用哪种风格,都可以完成一些非常有用的任务。因而,Javascript是一门面向过程的语言,同时也是一门面向对象的语言,进而可以模仿面向对象语言的编程模式和惯用法。我们用一个例子来说明:启动和停止动画。如果你习惯于函数式的编程风格,代码会如下:functi
阅读全文