js创建对象的几种方式

面向对象编程特点(OOP):
抽象:抓住核心问题
封装:只能通过对象来访问方法
继承:从已有的对象下继承出新的对象
多态:多对象的不同形态

创建方式
第一种:使用对象字面量表示法

person = {
name:'Sear',
job:"student"
}

第二种:构造函数模式

function person(name,job) {
this.name = name
this.job = job
}
var newPerson = new person(“Sear”,“student”)
newPerson

1、优点:创建自定义函数意味着将来可以将它的实例标识为一种特定的类型,这是构造函数胜过工厂模式的地方
2、缺点:每个方法都要在每个实例上重新创建一遍

第三种:工厂模式/(内置对象)

function person(name) {
//原材料
var model = new Object()
//加工
model.name = name
//出品
return model
}
var newPerson = person("Sear")
newPerson

工厂模式的优缺点:虽然解决了创建相似对象的问题,但是却没有解决对象识别问题(即怎样知道一个对象的类型)

第四种:原型模式

function people() {}
people.prototype.name ="Sear";
people.prototype.job = "Student"
var newPerson = new person()
newPerson

1、优点:可以让所有的对象实例共享它所包含的属性和方法
2、缺点:原型中是所有属性都是共享的,但是实例一般都是要有自己的单独属性的。所以一般很少单独使用原型模式。

第五种:混合模式 (构造函数+原型模式)
构造函数模式定义实例属性,而原型模式用于定义方法和共享的属性

function people(name){
this.name = name
}
people.prototype.job ="student"
var newPeople = new people("Sear")
newPeople

你可能感兴趣的:(js创建对象的几种方式)