对象

@Object

简洁 Introduction

[] 基本使用
let example = {
  id: 1001,
  date: '2025/1/12',
  sayHello: function () {
    console.log("Hello");
  },
};
example.sayHello(); // Outputs: 'Hello'

静态方法 Static methods

. 直接使用,无须实例化

对象常用运算符

解构 {}

展开 ...

[] 框架中按需结构包
import { createApp } from 'vue'
import { computed, onMounted, reactive, ref } from 'vue';
const { add, dec } = require('./module/test')
[] 示例数据
let obj = { name: 'cnplaman', age: 18, address: { city: 'gz', code: 541000 } }
普通解构赋值 - 获取obj中的属性赋值给同名变量
let { name, age } = obj
重命名赋值 - 使用冒号:指定新变量名
let { name: uname, age: uage } = obj
默认赋值 - 解构时修改属性值或增加一个新属性
let { name: uname, age: uage, gender = 'male' } = obj
嵌套解构赋值
let { name, age, address: { city } } = obj
let { name, age, address: { code: postcode } } = obj

使用 Usage

增/改

let obj = { name: 'cnplaman', age: 18 }
obj.gender = 'male';
obj.marriage = true;
obj.age = 24;
console.log(obj.name);
console.log(obj['name']);
console.log(obj);

delete obj.marriage;
console.log(obj);

. 定义查询字符串
let sql = 'age' in obj
console.log(sql);

长度

. 无法直接获取;通过对象Object的静态方法:entries()、keys()或values()间接获取;这三个方法返回入口、键和值的数组
console.log(Object.keys(obj).length);
console.log(Object.values(obj).length);
console.log(Object.entries(obj).length);

遍历对象

. for-in;枚举
// 遍历的是key,要想获取值value,则配合对象使用
for (item in obj) {
  console.log(item, obj[item]);
}

//fail
// obj.forEach(item => {
//   console.log(item);
// })

// fail: TypeError: obj is not iterable
// for (item of obj) {
//   console.log(item);
// }

//也可以先entries()、keys()或values(),再使用数组遍历方法,如for()或forEach()
Object.keys(obj).forEach(item => {
  console.log(item);
})
Object.values(obj).forEach(item => {
  console.log(item);
})
Object.entries(obj).forEach((item) => {
  console.log(item);
})
//解构再输出
Object.entries(obj).forEach(([value, key]) => {
  console.log(key, value);
})
. 函数的参数传递是传值;但是函数内部对对象的访问是引用
function setObj(obj) {
    obj.name = 'glpla';
}
let stu = new Object();
setObj(stu);
console.log(stu.name);