你认识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<