1.直接创建对象
优点:简单
缺点:无法进行相同对象量产
var a = {
name:'张三',
age:'18',
height:'175',
show:function(){
console.log('直接创建对象')
}
}
2.工厂模式:封装一个函数,每次调用 则创建一个对象
优点:快速进行相同类型对象的量产
缺点:无法明确,确定的类型
function creat (name,age,height) {
var obj = {}
obj.name = name;
obj.age = age;
obj.height = height;
obj.show = function(){
console.log('工厂模式')
}
return obj;
}
var a = creat('张三',18,175)
3.构造函数
优点:量产,又能检测对应的类型
缺点:相同的方法,没有开辟共同空间,导致内存消耗
function creat (name,age,height) {
this.name = name;
this.age = age;
this.height = height;
this.show = function(){
console.log('构造函数')
}
}
var a = new creat('张三',18,175)
4.原型创建对象
优点:量产,可以判断类型,节约内存
function creat (name,age,height) {
this.name = name;
this.age = age;
this.height = height;
}
构造函数的原型(prototype)==实例化对象的原型(__proto__)
creat.prototype.show = function(){
console.log('原型创建对象')
}
var a = new creat('张三',18,175)
**通过相同构造函数创建出来的对象 原型相同,改变一个原型,所有用此方法创建的对象原型都会改变