面向对象的概念
- 面向对象就是使用对象. 面向对象开发就是使用对象开发.
- 面向过程就是以过程的方式开发. 面向对象是对面向过程的封装.
面向对象的特性
- 抽象性
- 封装性
- 继承性
抽象性
所谓的抽象性就是: 如果需要用一个对象描述一个数据, 需要抽取这个对象的核心数据
- 提出需要的核心属性与方法
- 不在特定环境下无法明确对象的具体意义
封装性
对象是将数据与功能组合到一起, 即封装
- js 对象就是 键值对的集合
- 键值如果是数据( 基本数据, 复合数据, 空数据 ), 就称为属性
- 如果键值是函数, 那么就称为方法
- 对象就是将属性与方法封装起来
- 方法是将过程封装起来
继承性
所谓继承就是自己没有, 别人有. 拿过来为自己所用, 并成为自己的东西
- 传统继承基于模板
- js 继承基于对象
一个简单的继承模式: 混入( mix )
function mix ( o1, o2 ) {
for ( var k in o2 ) {
o1[ k ] = o2[ k ];
}
}
在 jquery 中将该方法命名为 extend.
使用对象进行编程
- 首先看是否有内置对象, 或第三方提供对象
- 如果没有自己定义
需求:
创建一个 div 标签, 并设置其样式, 加入页面中
- 传统的处理办法
- 使用面向对象的方式进行思考的办法
中级代码
function DivTag() {
this.DOM = document.createElement( 'div' );
this.appendTo = function ( node ) {
node.appendChild( this.DOM );
return this;
};
this.css = function ( option ) {
for ( var k in option ) {
this.DOM.style[ k ] = option[ k ];
}
return this;
}
}