• JS进阶-构造函数创建对象


    创建对象的三种方式

    1.利用对象字面量创建对象obj={}

    2.利用new Object创建对象obj=new Object({})

    3.利用构造函数创建对象

    构造函数

    是一种特殊的函数,主要用来初始化对象,在技术上就是常规函数。

    使用场景:常规的{...}语法允许创建一个对象。比如我们创建了佩奇的对象,继续创建乔治的对象还需要重新写一遍,此时可以通过构造函数来快速创建多个类似的对象。

    1. function Pig(name, age, gender) {
    2. this.name = name
    3. this.age = age
    4. this.gender = gender
    5. }
    6. const Peppa = new Pig('佩奇', 6, '女')
    7. const Grorage = new Pig('乔治', 3, '男')

    两个约定:

    1.它们的命名以大写字母开头。

    2.它们只能由“new”操作符来执行。

    说明:

    1.使用new关键字调用函数的行为被称为实例化

    2.实例化构造函数时没有参数时可以忽略()

    3.构造函数内部无需写return,返回值即为新创建的对象

    4.构造函数内部的return返回的值无效,所以不要写return

    5.new Object()、new Date()也是实例化构造函数

    实例化执行过程

    说明:

    1.创建新空对象

    2.构造函数this指向这个对象

    3.执行构造函数代码,修改this,添加新的属性

    4.返回新对象

    实例成员&静态成员

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

    说明:

    1.为构造函数传入参数,创建结构相同但值不同的对象

    2.构造函数创建的实例对象彼此独立互不影响,实例成员当前实例对象使用

    1. function Pig(name) {
    2. this.name = name
    3. }
    4. const Peppa = new Pig('佩奇')
    5. Peppa.name = '小猪佩奇'//实例属性
    6. Peppa.sayHi = () => {//实例方法
    7. console.log('hi')
    8. }

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

    说明:

    1.静态成员只能构造函数来访问

    2.静态方法中的this指向构造函数

    比如Date.new()、Math.PI、Math.random()

    1. function Person(name) {
    2. //省略实例成员
    3. }
    4. Person.eyes = 2//静态属性
    5. Person.walk = function () {//静态方法
    6. console.log("人都会走路")
    7. }

    构造函数实现封装

    js面向对象可以通过构造函数实现的封装。

    缺点:存在浪费内存的问题。

  • 相关阅读:
    fastjson2与fury的巅峰对决,谁会笑到最后?
    [附源码]计算机毕业设计springboot停车场管理系统
    数据结构之B数
    vue3(element-plus)+多语言切换实现
    Docker学习资料集(从入门到实践)
    C51 - 中断系统
    SW-2运行结果
    Java 垃圾收集器
    任务调度xxljob的使用记录
    Linux常用指令(九)——软件安装
  • 原文地址:https://blog.csdn.net/weixin_46479909/article/details/133376291