js中创建对象的5种方法

1、Object构造函数模式

所谓 Object 构造函数就是将 Object 作为构造函数,先创建一个空的 Object 对象,再动态添加属性或者方法。

//创建 Object 对象
var p = new Object()

//动态添加属性和方法
p.name = 'Tom'
p.age = 18
p.setName = function(name){
	this.name = name 
}

适用场景: 起始时不确定对象内部数据。
问题: 语句太多。

2、对象字面量模式

这是日常中最常用到的方法,使用 {} 创建对象,同时指定属性和方法。

var p = {
	name = 'Tom'
	age = 18
	setName: function(name){
		this.name = name
	}
}

适用场景: 起始时对象内部数据是确定的。
问题: 创建多个对象时,会产生重复代码。

3、工厂模式

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

function createPerson(name,age){
	var obj = {
		name: name,
		age: age,
		setName: function(name){
		this.name = name
		}
	}
	return obj
}

var p1 = createPerson('Tom',18)

适用场景: 需要创建多个对象。
问题: 对象没有一个具体的类型,都是Object类型。

4、自定义构造函数模式

与object构造函数模式类似,通过自定义一个构造函数,再进行new操作创建对象

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

var p1 = new Person('Tom',18)

适用场景: 需要创建多个类型确定的对象。
问题: 每个对象都有相同的数据,浪费内存。

5、构造函数+原型的组合模式

自定义构造函数,属性在函函数中初始化,方法添加到原型上。

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

Person.prototype.setName = function(name){
	this.name = name
}

var p1 = new Person('Tom',18)

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

👇觉得有帮助的朋友可以支持下作者哦,您的鼓励是我创作的最大动力,如有开发问题可联系作者
请添加图片描述

  • 9
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值