对象创建模式

对象创建模式:

方式一: Object构造函数模式

先创建空Object对象,再动态添加属性方法

适用场景:起始时不确定对象内部数据

问题: 语句太多

var obj = new Object()
obj.name = "XXX"
obj.age = 18
obj.gender = "男"

方式二: 对象字面量模式

使用{ }创建,通时指定属性与方法

适用场景: 起始时对象内部数据是确定的

问题:如果创建多个对象,有重复代码

var obj = {
    obj.name = "XXX"
    obj.age = 18
    obj.gender = "男"
}

方式三:工厂模式

通过工厂函数动态创建对象并返回

使用场景:需要创建多个对象

问题:对象没有一个具体的类型,都是Object类型

function creatPreson(name,age,gender){
    var obj = {
		name:name
        age:age
        gender:gender
    }
    return obj
}

var p = creatPreson("XXX",18,"男")

方式四:自定义构造函数模式(相同属性方法依旧放在函数内)

自定义构造函数,通过new创建对象

适用场景: 需要创建多个类型确定的对象

问题:每个对象都有相同的数据,浪费内存

function Person(name,age,gender){
	this.name = name
    this.age = age
    this.gender = gender
    this.changeName = function(name){
        this.name = name
    }
}

var p = new Person("XXX",18,"男")

方式五:方式四的升级版(相同属性方法放在原型内)

function Person(name,age,gender){
	this.name = name
    this.age = age
    this.gender = gender
    this.prototype.changeName = function(name){
        this.name = name
    }
}

var p = new Person("XXX",18,"男")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值