一.对象的理解
一个对象可以是一个单独的拥有属性和类型的实体,一个 javascript 对象有很多属性,属性可以是它的功能和它本身的特性,添加对象属性用对象名+.=来进行添加。
举例:
一个盒子对象,本身特征属性为黑色,正方体;功能属性为装手纸的盒子。
二.常见创建对象的方式
1.通过new Object()或{}创建对象
let obj=new Object()
obj.name="小龙"
obj.age=20
//也可以用下面这种方式
let obj={}
obj.name="小龙"
obj.age=20
//等价于
let obj={name:"小龙",age:20}
2.通过工厂模式创建对象
Object方法或者字面量(var obj={})可以创建单个对象,但缺点太过于明显,代码过于冗余,会产生大量重复代码,由此引入工厂模式,即使用函数创造对象。
function create(name, age) {
let obj = new Object()
obj.name = name
obj.age = age
return obj
}
let p1=create("小刘",20)
let p2=create("小张",18)
console.log(p1,p2)
3.通过构造函数创建对象
通过new来构造函数,约定俗成的惯例,构造函数命名开头首字母大写,与工厂模式不同,构造函数使用了this指向,因此,他知道从哪里来,从哪里产生的,可以将他的实例标识为一种特定的类型。
function Person(name, age, sex) {
this.name = name
this.age = age
this.sex = sex
}
let p1=new Person("小王",18)
let p2=new Person("小赵",19)
console.log(p1,p2)
#普通函数与构造函数的区别
(1)调用方式不同,构造函数需要用到new来调用,而普通函数不需要
(2)构造函数没有return返回值,它返回的是构造它的实例化对象(即this指向)
三.对象的遍历
对象是不能使用传统的for循环进行遍历的,但是可以使用fon in进行遍历
1.for in遍历
let person={
name:"小明",
age:10
}
for (const key in person) {
// 拿到所有的key
console.log(key)
} for (const key in person) {
// 拿到所有的key的值
console.log(person[key])
}
运行结果
2.对象keys 遍历
该方法是Object提供的一个keys方法,keys方法可以将该对象的所有key存到一个数组中
let person = {
name: "小明",
age: 10
}
let keys = Object.keys(person)
console.log(keys)
运行结果
将对象中的key和属性全部输出
let person = {
name: "小明",
age: 10
}
let keys = Object.keys(person)
keys.forEach(item => {
console.log(item + " : " + person[item])
})
运行结果
3.对象values遍历
如果只想获取对象中的属性值,还有一种方法
let person = {
name: "小明",
age: 10
}
let value = Object.values(person)
value.forEach(value => {
console.log(value)
})
运行结果
到此,本篇结束