面向对象

阅读更多
面向对象:面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的特性!
一、理解对象:
第一种:基于Object对象
var person = new Object();
person.name = 'Li Ming';
person.age = 18;
person.getName = function(){
    return this.name;
}
第二种:对象字面量方式
var person = {
    name : 'Li Ming',
    age : 18,
    getName : function(){
        return this.name;
    }
}
二、创建对象
1、工厂模式
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的原生构造函数来完成的。

2、构造函数模式
function Person(name,age,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.getName = function () {
        return this.name;
    }
}
var person1 = new Person('Jack', 19, 'Worker1');

var person2 = new Person('Liye', 23, 'Worker2');

你可能感兴趣的:(oo)