JavaScript中创建复杂数据类型(object)对象的三种方式

一、使用Object构造函数创建对象

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>使用Object构造函数创建对象</title>
</head>
<body>
	<script type="text/javascript">
		/* 使用Object构造函数创建对象 */
		var andy = new Object() // 注意,此处“O”是大写的!
		console.log(typeof andy) // object,注意“o”是小写的,即object数据类型
		// 直接在控制台输出andy复杂数据类型(引用数据类型)的对象
		console.log(andy) // Object
		// 直接给andy复杂数据类型(引用数据类型)的对象添加属性并赋值
		andy.name = '安迪'
		andy.age = 55
		// 直接给andy复杂数据类型(引用数据类型)的对象添加方法
		andy.sing = function (singName) { // 等号左侧有函数名,等号右侧为匿名函数
			alert(singName)
		}
		andy.movie = function () {
			alert('无间道')
		}
		// 访问andy复杂数据类型(引用数据类型)对象的属性
		console.log(andy.name)
		console.log(andy.age)
		// 调用andy复杂数据类型(引用数据类型)对象的方法
		andy.sing('冰雨')
		andy.movie()
	</script>
</body>
</html>

二、使用直接量创建对象

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>使用直接量创建对象</title>
</head>
<body>
	<script type="text/javascript">
		/* 使用直接量创建对象 */
		var andy = {}
		console.log(typeof andy) // object
		// 直接在控制台输出andy对象
		console.log(andy) // {}
		// 使用直接量创建对象的同时,添加属性和方法
		var edison = {
			name: '爱迪生',
			age: 30,
			show: function () {
				console.log('name=' + this.name + ', age=' + this.age)
			}
		}
		// 直接在控制台输出edison对象
		console.log(edison) // {name: '爱迪生', age: 30, show: ƒ}
		// 访问edison对象的属性
		console.log(edison.name)
		console.log(edison.age)
		// 调用edison对象的方法
		edison.show()
		// 使用直接量一次创建多个对象
		// 即将多个使用直接量创建的(匿名)对象放在一个数组中
		var objects = [{
				name: '张三',
				age: 40,
				show: function () {
					console.log('name=' + this.name + ', age=' + this.age)
				}
			}, {
				name: '李四',
				age: 50,
				show: function () {
					console.log('name=' + this.name + ', age=' + this.age)
				}
			}, {
				name: '王五',
				age: 60,
				show: function () {
					console.log('name=' + this.name + ', age=' + this.age)
				}
		}]
		// 直接在控制台输出objects数组对象
		console.log(objects) // Array(3)
		// 访问数组中第一个对象的属性
		console.log(objects[0].name)
		console.log(objects[0].age)
		// 调用数组中第一个对象的方法
		objects[0].show()
	</script>
</body>
</html>

三、使用自定义构造函数创建对象

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>使用自定义构造函数创建对象</title>
</head>
<body>
	<script type="text/javascript">
		/* 使用自定义构造函数创建对象 */
		// 1 自定义构造函数
		function Student(name, age) {
			this.name = name
			this.age = age
			this.show = function () {
				console.log('name=' + this.name + ', age=' + this.age)
			}
		}
		// 2 使用自定义的Student构造函数来创建对象
		var student = new Student('张三', 40)
		var student02 = new Student('李四', 50)
		var student03 = new Student('王五', 60)
		console.log(typeof student) // object
		// 直接在控制台输出student对象
		console.log(student) // Student
		// 访问student对象的属性
		console.log(student.name)
		console.log(student.age)
		// 调用student对象的方法
		student.show()
	</script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值