• JavaScript——创建对象的三种方法


    文章目录

    • 前言
    • 什么是对象?
      • 1.对象
      • 2.对象的分类
    • 二、创建对象的三种方法
      • 1.字面量形式创建对象
      • 2.动态添加的方法创建对象
      • 3.使用构造函数创建对象
    • 三、利用不同方法创建对象的对比
    • 总结


    一、什么是对象?

    1.对象:

    对象(object)属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性,避免重复存储,解决数据难以维护的问题。

    2.对象的分类:

    • 内建对象:
              -由ES标准中定义的对象,在任何的ES实现中都可以使用
              -比如: Math  String Boolean Number  Function   Object……、
    • 宿主对象
             -由JSD的运行环境提供的对象,目前主要指浏览器提供的对象,比如: BOM  DOM
    • 自定义对象
              -由开发人员自己创建的对象

    二、创建对象的三种方法

    1.字面量形式创建对象

    var  obj  =  new  Object( );         等价于       var   obj = { };

    花括号内的语法:  {属性名:属性值,属性名:属性值,…… }

    使用对象字面量,可以在创建对象时,直接指定对象的属性
    例如:创建名为 obj2的对象,并添加 name,age,gender,test等属性。
    var obj2 = {
        name: "李斯”,
        age: 28,
        gender: "男"
        test:{name: "沙和尚 "}     //也并非是嵌套了对象,只是test 这个属性也是一个对象而已
         }

    2.动态添加的方法创建对象

    代码如下(示例):

    1. //使用动态的方法创建名为student的对象
    2. var student1 = {};
    3. student1.name = 'lucy';
    4. student1.age = 18;
    5. student1.school = 'red-earth school';
    6. student1.language = function(){
    7. console.log('她会说法语哦!');
    8. }
    9. // 查看对象 student
    10. console.log(student1);
    11. student1.language()

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

    • 构造函数与普通函数一样,构造函数习惯首字母大写
    • 调用方式不同: 普通函数直接调用 例如  fun()   而构造函数需要使用  new  关键字来调用
    • 使用同一个构造函数创建的对象,我们成为一类对象,而该构造函数称为  类,   通过该类创建的对象,称为该类的实例

    构造函数的执行流程:

    1. 立刻创建一个新的对象

    2. 将新建的对象设置为函数中this,在构造函数中可以使用  this  来引用新建的对象

    3. 逐行执行函数中的代码

    4. 将新建的对象作为返回值返回

    代码如下(示例):

    1. function student3(name,age,school,language){
    2. // 其中this 指代的是此创建的对象;
    3. this.name = name;
    4. this.age = age;
    5. this.school = school;
    6. this.language = language;
    7. }
    8. // 调用构造函数 student
    9. var stu = new student3('Jack',18,'red-earth school',function(){
    10. console.log('她会说俄罗斯语哦!');
    11. });
    12. console.log(stu);
    13. stu.language();

    instanceof   可以检查一个对象是否是一个类的实例

    语法:

         对象   instanceof   构造函数 

    是,返回true   不是  返回false 


    三、利用不同方法创建对象的对比

  • 相关阅读:
    MATLAB程序设计与应用 3.3 矩阵求值
    【资源分享】2022年第五届土木,建筑与环境工程国际会议(ICCAEE 2022)
    深度干货!一篇Paper带您读懂HTAP | StoneDB学术分享会第①期
    英语语法 — 引语
    由于找不到vcruntime140_1.dll怎么修复,详细修复步骤分享
    java计算机毕业设计springboot+vue宠物服务管理系统(源码+系统+mysql数据库+Lw文档)
    Hive大白话(●三●)
    android中集成ffmpeg
    PLC直线插补
    华为数通方向HCIP-DataCom H12-831题库(多选题:61-80)
  • 原文地址:https://blog.csdn.net/Bonsoir777/article/details/126372100