构造函数&数据常用函数

深入对象

创建对象方式

  • 使用对象字面量创建对象

  • 使用 new Object 创建对象,示例代码如下:

    const obj = new Object( {age: '18'} )
    obj.uname = '校花'
    console.log(obj)
    
  • 使用构造函数创建对象

构造函数

  • 使用场景:通过构造函数快速创建多个类似的对象
  • 本质上是普通函数,不过有 2 个约定
    • 命名以大写字母开头
    • 只能由 new 操作符来执行
  • 构造函数内部无需写 return ,返回值即为新创建的对象

示例代码如下:

function Pig(uname, age) {
    this.uname = uname
    this.age = age
}

const p = new Pig('佩奇', 6)
const q = new Pig('乔治', 3)

实例化执行过程

  1. 创建新的空对象
  2. 构造函数 this 指向新对象
  3. 执行构造函数代码,使用 this 追加新的属性
  4. 返回新对象

实例成员&静态成员

  • 实例成员:通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员
  • 静态成员:构造函数的属性和方法称为静态成员

内置构造函数

在 JavaScript 中最主要的数据类型有 6 种:

  1. 基本数据类型:
    1. 字符串
    2. 数值
    3. 布尔
    4. undefined
    5. null
  2. 引用类型:对象
  • 基本数据类型也有专门的构造函数,称为包装类型

  • 在声明赋值一个基本数据类型时,js 底层会自动把它转为包装类型

Object

3 个常用的静态方法(静态方法只有构造函数 Object 可以调用

keys

  • Object.keys 静态方法获取对象中所有属性(键)
  • 返回的是一个数组

示例代码如下:

const o = { uname: '校花', age: 18}
// 获得所有的属性名
console.log(Object.keys(o)) // 返回数组

values

  • Object.values 静态方法获取对象中所有属性值
  • 返回的是一个数组

示例代码如下:

const o = { uname: '校花', age: 18}
console.log(Object.values(o)) // 返回数组

assign

  • 作用:Object. assign 静态方法用于对象拷贝,是浅拷贝
    • 如果对象的属性值为基本数据类型,拷贝得到的新对象为深拷贝
    • 如果对象的属性为对象,拷贝得到的新对象为浅拷贝
  • 使用场景:给对象添加属性

示例代码如下:

const xh = {uname: '校花', age: 18}
Object.assign( xh, {gender: '男'} )

Array

  • reduce 实例函数的作用是返回累计处理的结果,经常用于求和等

  • 基本语法如下:

    arr.reduce(function (上一次值, 当前值){}, 初始值)
    
  • 参数:初始值可以省略,如果写就作为第一次累计的初始值

  • 执行过程如下:

    1. 如果没有初始值,则上一次值为数组第一个元素的值
    2. 每一次循环,把返回值给下一次循环的上一次值
    3. 如果有初始值,则初始值作为上一次值

示例代码如下:

const arr = [1, 5, 8]

// 没有初始值
const total1 = arr.reduce(function (prev, current) {
    return prev + current
})

console.log(total1) // 14

// 有初始值
const total2 = arr.reduce((prev, current) => prev + current, 10)
console.log(total2) // 24

String

常用实例方法:

  • split('分隔符') :将字符串拆分为数组
  • str.substring(第一个字符的索引[, 结束索引]) :截取字符串,左闭右开,结束索引可省略
  • str.startsWith(检测字符串[, 检测位置索引号]) :检测字符串是否以某字符串开头,默认从 0 开始查找
  • srt.includes(搜索的字符串[, 检测位置索引号]) :判断某个字符串是否包含在一个字符串里面,区分大小写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值