在前文全面理解Javascript的面向对象(一)中详细介绍了面向对象的主要知识点,可以帮助大家很细致的了解js面向对象的概念,本文作为补充,主要从对象的构建和继承的方式两方面进行分析。
一、创建对象主要的几种方式
1 工厂模式
工厂模式抽象了创建具体对象的过程,用函数封装以特定接口创建对象的细节。
function createPerson(name,age,job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function () {
alert(this.name);
}
return o;
}
var person1 = createPerson("Nike",21,"Doctor");
var person2 = createPerson("Frank",21,"Manager");
缺点:没有解决对象的识别问题,即怎样知道一个对象的类别。于是,新的模式:构造函数模式出现了。
2 构造函数模式
像Object、Array这样的原生构造函数,在运行时就会自动创建。此外也可以自定义构造函数,从而定义自定义对象类型的属性和方法。
function Person(name,age,job) {
this.name = name;
this.age = age;
this.job = job;
this.sayName = function () {
alert(this.name);
}
}
var person1 = new Person("Nike",21,"Doctor");
var person2 = new Person("Frank",21,"Manager");