当前位置: 首页 > article >正文

你认识JS对象吗?

文章目录

  • 前言
  • 一、对象是什么?
            • ECMA-262 将对象定义为 **`一组属性的无序集合 `** 。严格来说,这意味着对象就是一组没有特定顺序的值。对象的每个 **`属性`** 或 **`方法`** 都由一个 **==名称==** 来标识,这个 **==名称==** **映射到** 一个 **==值==**。
  • 二、创建对象的方法
    • 🌴 1. 使用 new 操作符和 Object 构造函数
        • 🚩 **语法:let person = new Object();**
    • 🌴 2. 对象字面量(object literal)表示法
        • 🚩 **语法:let person = {};**
    • 🍄 3. 工厂模式
    • 🍄 4. 构造函数模式
          • 💥💥💥 重要:
          • 1️⃣ **在内存中创建一个新对象。**
          • 2️⃣ **这个新对象内部的 [ [ Prototype ] ] 特性被赋值为构造函数的 prototype 属性。**
          • 3️⃣ **构造函数内部的 this 被赋值为这个新对象(即 this 指向新对象)。**
          • 4️⃣ **执行构造函数内部的代码(给这个新对象添加属性)。**
          • 5️⃣ **如果构造函数返回非空对象,则返回该对象;否则,返回刚创建的新对象。**
  • 🔰 总结


前言

注意:本篇内容需要你熟悉几个常见的概念,请看上篇 《写在初识对象前!!》


一、对象是什么?

对象是一个包含相关 数据方法 的集合(通常由一些变量和函数组成,我们称之为对象里面的 属性方法 )。

ECMA-262 将对象定义为 一组属性的无序集合 。严格来说,这意味着对象就是一组没有特定顺序的值。对象的每个 属性方法 都由一个 名称 来标识,这个 名称 映射到 一个

二、创建对象的方法

🌴 1. 使用 new 操作符和 Object 构造函数

🚩 语法:let person = new Object();

例如:

// new 操作符跟 Object 构造函数
let person = new Object(); // 与 let person = {} 相同
 person.name = "袁华";
 person.age = 29;
 person.sayName = function () {
   
   console.log(`你好!我是 ${
     this.name}`);
};

早期JavaScript 开发者频繁使用 new Object() 这种方式创建新对象。但是每次都写 new Object() 很麻烦,所以几年后,对象字面量变成了更流行的方式。(对象字面量 可以理解成 new Object()语法糖 🍬)

🌴 2. 对象字面量(object literal)表示法

对象字面量: 是对象定义的一种简写形式,目的在于 简化 创建包含大量属性的对象的过程。对象字面量是由一对大括号 { } 包裹起来的键值对集合。

🚩 语法:let person = {};

例如:

// 对象字面量 (object literal)
let person = {
   
  name: ["夏洛", "马冬梅"],
  age: 32,
  bio() {
   
    console.log(`${
     this.name[0<

http://www.kler.cn/a/297976.html

相关文章:

  • Veeam中国区“十年换四帅”
  • k8s之HPA实践——实现Web服务器的自动伸缩特性
  • 报表生成---JFreeChart
  • 电驱动NVH的特点和结构
  • 写作翻译两不误!Deepl翻译,我的创意加速器
  • 3GPP协议入门——物理层基础(一)
  • springboot项目编写发送异常日志到企微工具包
  • yjs01——机器学习的过程
  • Oracle19C触发器
  • 如何理解基于架构的软件设计(ABSD)
  • 专业通风天窗厂家能提供哪些服务
  • uniapp vite3 require导入commonJS 的js文件方法
  • 嵌入式 面试单片机面试题目分析和答案 IIC总线 IIC协议 SPI总线 I2C协议讲解 SPI和IIC协议对比比较SPI的工作模式比较 IIC基本概念讲解
  • Jupyter管理内核命令
  • 深入剖析 Netty 中 TCP 粘包和拆包问题的解决之道
  • 我的第3个AI项目-Advanced RAG with Gemma, Weaviate, and LlamaIndex
  • Rocky Linux9下安装Docker和卸载Docker
  • 彻底理解防抖和节流
  • 诫子书和译文
  • 游戏加速器行业需要办理什么许可证?