多态
多态最根本的作用就是通过把过程化的条件分支语句转化成对象的多态化,从而消除这些条件分支语句
例子
//谷歌地图
var googleMap = { show: function(){
console.log( '开始渲染谷歌地图' ); }
}
//百度地图
var baiduMap = { show: function(){
console.log( '开始渲染百度地图' ); }
};
//没有用到多态调用地图 使用条件判段
var renderMap = function( type ){
if ( type === 'google' ){
googleMap.show();
}else if ( type === 'baidu' ){
baiduMap.show();
} };
//用到了对象的多态性 不同的对象调用相同的方法 show 就会产生各自不同的执行结果
var renderMap = function( map ){
if ( map.show instanceof Function ){
map.show();
}
};
renderMap( 'google' ); // 输出:开始渲染谷歌地图
renderMap( 'baidu' ); // 输出:开始渲染百度地图
封装
封装的目的是将信息隐藏。隐藏实现细节、设计细节以及隐藏对象的类型等。使得对象内部的变化对其他对象而言是不可见的。
其他对象或者用户都不关心它的内部实现。封装使得对象之间的耦合变得松散。
继承
JavaScript 本身是一门基于原型的面向对 象语言,它的对象系统就是使用原型模式来搭建的。
在 JavaScript 语言中不存在类的概念,对象也并非从类中创建出来的,所有的 JavaScript 对象都是从某个对象上克隆而来的。