【博学谷学习记录】超强总结,用心分享前端|深入对象

目录

创建对象的三种方式

利用对象字面量创建对象

利用new Object创建对象

利用构造函数创建对象

构造函数

实例化执行过程

实例成员&静态成员

实例成员

静态成员


创建对象的三种方式

利用对象字面量创建对象

例:

const o = {name : ‘佩奇’}

利用new Object创建对象

例:

const o = new Object({name : ‘佩奇’})

console.log(o)  // {name : ‘佩奇’}

利用构造函数创建对象

构造函数

构造函数是一种特殊的函数,主要用来初始化对象

使用场景:常规的语法允许创建一个对象,比如,继续创建另一个对象要重新写一遍,此时可以通过构造函数来快速创建多个类似的对象

例:

function Pig(name,age,gender) {

this.name = name

this.age = age

this.gender = gender

}

const Peppa = new Pig(‘佩奇’, 6 , ‘女’)  // 创建佩奇对象

const George = new Pig(‘乔治’, 3 , ‘男’)  // 创建乔治对象

构造函数技术上是常规函数

不过有两个约定:

  1. 它们的命名以大写字母开头
  2. 它们只能由“new”操作符来执行

说明:

  1. 使用new关键字调用函数的行为被称为实例化
  2. 实例化构造函数时没有参数可以省略
  3. 构造函数内部无需写return,返回值即为新创建的对象
  4. 构造函数内部的return返回值无效,所以不要写return
  5. new Object()、new Date()也是实例化构造函数

实例化执行过程

例:

  1. 创建构造函数

function Pig(name) {

this.name = name

}

  1. new关键字调用函数

new Pig(‘佩奇’)

接受创建的对象

const peppa = new Pig(‘佩奇’)

console.log(peppa)  // {name : ‘佩奇’}

说明:

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

实例成员&静态成员

实例成员

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

例:

// 构造函数

function Person() {

// 构造函数内部的this就是实例对象

// 实例对象中动态添加属性

this.name = ‘小明’

// 实例对象动态添加方法

this.asyHi = function() {

console.log(‘大家好’)

}

}

// 实例化,p1是对象

// p1实际就是构造函数内部的this

const p1 = new Person()

console.log(p1)

console.log(p1.name)  // 访问实例属性

p1.sayHi()  // 调用实例方法

说明:

  1. 实例属性的属性和方法即为实例成员
  2. 为构造函数传入参数,动态创建结构相同但值不同的对象
  3. 构造函数创建的实例对象彼此独立不影响

静态成员

静态成员:构造函数的属性和方法被称为静态成员

例:

// 构造函数

function Person(name,age) {

// 省略实例成员

}

// 静态属性

Person.eyes = 2

Person.arms = 2

// 静态方法

Person.walk = function() {

console.log(‘人都会走路’)

console.log(this.eyes)  // this指向Person

}

说明:

  1. 构造函数的属性和方法被称为静态成员
  2. 一般公共特征的属性或方法静态成员设置为静态成员
  3. 静态成员方法中的this指向构造函数本身
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值