译者: 王楠
一般属性
JavaScript是一种非常灵活的语言。相比于Java,PHP,C++和很多其他开发语言来说,JavaScript有很多方式去实现
那么OOP模式都包含什么呢?继承只是其中的一小部分。
JavaScript的OOP模式支持三种主要特性:
继承
-
它可以创建一个拥有扩展菜单功能的子对象TreeMenu。
-
子对象有权使用父元素的方法或属性,并且它也可以有自己的方法或属性。
-
这种特性相当棒,因为它允许重复使用像TreeMenu,SlidingMenu和其他特殊的菜单类型的通用菜单代码。
封装
一个对象禁止外部去访问被选择的属性和方法,所以它们只能被同一个对象的其他方法所引用。
封装允许隐藏菜单的内部细节。
例如,使用了一个菜单项的代码不应该直接访问它的DOM结构,处理程序等等。因为这些都是内部的。
但同时另一方面,应该有公共,私有和其他可以公开访问的方法。这些方法就叫做外部接口。
有三种最著名的封装级别:
-
private:只能被自己访问和修改。
-
protected:自身,子类及同一个包中类可以访问。
-
public:可以被所有其他类所访问。
封装有助于维护代码,因为这样程序员就知道,哪些方法可以被外部调用,哪些方法可以安全地修改或删除。
多态
使用菜单对象的代码可以切换到没有修改的TreeMenu对象或者SlidingMenu对象。
这是有可能的,因为菜单是遗传的公共接口。
在JavaScript中,和其他大多数语言不一样,JavaScript在语法上有几种不同的方法来实现上述OOP概念。