(一)对象创建的三种方法
1、利用对象字面量创建对象
const obj={
name:'小开心'
}
2、利用new Object创建对象
const obj1=new Object({
name:'小开心'
})
3、利用构造函数创建对象
构造函数:是一种特殊的函数,主要用来初始化对象,构造函数可以快速创建多个类似的对象
约定:(1)他们的命名以大写字母开头(2)他们只能用new操作符来执行
function Animals(name,age,color){
this.name=name;
this.age=age;
this.color=color
}
const cat=new Animals('小猫',3,'黑色')
const dog=new Animals('小狗',2,'白色')
const pig=new Animals('猪',3,'白色')
4、new一个构造函数发生了什么
(1)创建新对象
(2)构造函数的this指向新对象
(3)执行构造函数代码,修改this,添加新属性
(4)返回新对象
(二)内置构造函数
1、Object静态方法
(1)Object.keys(对象) 获取对象中所有的键
const obj={name:'小开心',age:21}
console.log(Object.keys(obj))
(2)Object.values(对象) 获取对象中所有的值
const obj={name:'小开心',age:21}
console.log(Object.values(obj))
(3)Object.assign(拷贝给谁,被拷贝对象)
const obj={name:'小开心',age:21}
const obj1={}
Object.assign(obj1,obj)
console.log(obj1)
对象的拷贝经常用于给对象添加属性
Object.assign(obj,{gender:'女'})
2、Array内置构造函数
(1)reduce返回累计处理的结果,经常用于求和
数组.reduce(function(上一次的值,这一次的值){},初始值)
(1.1)、reduce的执行过程
- 如果没有起始值,则上一次的值以数组的第一个元素的值
- 每一次循环,把 返回值给作为下一次循环的上一次的值
- 如果有起始值,则起始值作为上一次的值
(1.2)求和操作
const arr=[1,4,6,8,10]
const total=arr.reduce(function(pre,current){
return pre+current
},10)
console.log(`数组的和为:${total}`)
//箭头函数 写法
const total=arr.reduce((pre,current)=>pre+current,10)
console.log(`数组的和为:${total}`)
(2)数组中常见的方法
(2.1)find方法
find为查找,在多个对象里面只查找符合条件的对象,可以根据姓名进行查找
const arr=[{
name:'小米',
price:'1999'
},
{
name:'华为',
price:'2999'
}
]
const mi=arr.find(function(item){
return item.name==='小米'
})
console.log(mi)
(2.2)form方法 伪数组转换为真数组
Array.form(伪数组)将伪数组转换为真数组后可以利用真数组中的方法