面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化、多态、和封装几种技术。对JavaScript而言,其核心是支持面向对象的,同时它也提供了强大灵活的基于原型的面向对象编程能力。
一、理解对象:
(一)基于Object对象
var person = new Object();
person.name = 'Wang';
person.age = 20;
person.getName = function(){
return this.name;
}
(二)对象字面量方式
var person = {
name : 'Wang',
age : 20,
getName : function(){
return this.name;
}
}
二、创建对象
(一)工厂模式
function createPerson(name, age, job) {
var oo = new Object();
oo.name = name;
oo.age = age;
oo.job = job;
oo.getName = function () {
return this.name;
}
return o;//使用return返回生成的对象实例
}
var person = createPerson('Jack', 19, 'Worker');
创建对象交给一个工厂方法来实现,可以传递参数,但主要缺点是无法识别对象类型,因为创建对象都是使用Object的原生构造函数来完成的。
(二)构造函数模式
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.getName = function () {
return this.name;
}
}
var person1 = new Person('Bob', 18, 'Driver');
var person2 = new Person('Janny', 22, 'Waiter');
09-02