深入对象
创建对象三种方式
- 利用对象字面量创建对象:const
- 利用new Object创建对象
const obj = new Object({ name : 'lxy'})
- 利用构造函数创建对象
构造函数
一种特殊的函数,主要用来初始化对象。可以快速创建多个类似的对象。
注意构造函数的写法:命名以大写字母开头;它们只能由new操作符来执行。
其实 new Object() 和 new Date() 也是构造函数
<script>
function Pig(uname, age) {
this.uname = uname
this.age = age
}
const p = new Pig('佩奇', 6)
console.log(p);
</script>
重要!:实例化的过程
实例成员&静态成员
- 实例成员
通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员(实例属性和实例方法)。
构造函数传入参数,创建结构相同但值不同的对象。
构造函数创建的实例对象彼此互不影响。
- 静态成员
静态成员:构造函数的属性和方法被称为静态成员(静态属性和静态方法)
静态成员只能构造函数来访问。Math.random()/Math.PI
静态方法中的this指向构造函数。
内置构造函数
JS中几乎所有的数据都可以基于构成函数创建。基本的数据类型被包装成了复杂数据类型,所以可以直接使用方法和属性。eg:str.length
Object
静态方法(即只有构造函数Object可以调用)
- Object.keys
获取对象中所有属性(键),返回一个数组。
// object静态方法
const o = {
uname: 'lxy',
age: 18
}
console.log(Object.keys(o)); //获得所有属性名
console.log(Object.values(o)); //获得所有属性值
- Object.assign
用于对象拷贝。
const oo = {}
Object.assign(oo, o) //拷贝
Array
实例方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/42206d5ec0b44ee98e200efbf46545cb.png
- reduce方法
reduce返回累计处理的结果。
语法:
数组.reduce(function (prev, current) {
return prev + current
}, 起始值)
- 伪数组转换为真数组
静态方法。
Array.from(伪数组)