当前位置:首页 > JavaScript

js实现object

2026-02-02 04:07:40JavaScript

Object 的基本概念

在 JavaScript 中,Object 是一种复合数据类型,用于存储键值对(key-value pairs)。它是 JavaScript 中最基础的数据结构之一,几乎所有的复杂数据类型都是基于 Object 构建的。

创建 Object

使用字面量语法创建 Object 是最常见的方式:

const person = {
  name: 'Alice',
  age: 25,
  greet: function() {
    console.log(`Hello, my name is ${this.name}`);
  }
};

通过 new Object() 构造函数创建:

const car = new Object();
car.make = 'Toyota';
car.model = 'Camry';

访问和修改属性

使用点表示法访问属性:

console.log(person.name); // 输出: Alice

使用方括号表示法访问属性:

console.log(person['age']); // 输出: 25

修改属性值:

person.age = 26;

动态添加和删除属性

添加新属性:

person.job = 'Engineer';

删除属性:

delete person.age;

对象方法

在对象中定义方法:

js实现object

const calculator = {
  add: function(a, b) {
    return a + b;
  },
  subtract(a, b) {
    return a - b;
  }
};

调用对象方法:

console.log(calculator.add(5, 3)); // 输出: 8

遍历对象属性

使用 for...in 循环遍历对象属性:

for (const key in person) {
  console.log(`${key}: ${person[key]}`);
}

使用 Object.keys() 获取所有属性名:

const keys = Object.keys(person);
console.log(keys); // 输出: ['name', 'age', 'greet']

对象合并

使用 Object.assign() 合并对象:

const obj1 = { a: 1 };
const obj2 = { b: 2 };
const merged = Object.assign({}, obj1, obj2);
console.log(merged); // 输出: { a: 1, b: 2 }

使用展开运算符(ES6+):

js实现object

const merged = { ...obj1, ...obj2 };

对象解构

从对象中提取属性值:

const { name, age } = person;
console.log(name, age); // 输出: Alice 25

原型和继承

所有 JavaScript 对象都从原型继承属性和方法。可以通过 Object.create() 创建具有指定原型的对象:

const animal = {
  speak: function() {
    console.log(`${this.name} makes a noise.`);
  }
};

const dog = Object.create(animal);
dog.name = 'Rex';
dog.speak(); // 输出: Rex makes a noise.

对象冻结

使用 Object.freeze() 防止对象被修改:

const frozenObj = { prop: 42 };
Object.freeze(frozenObj);
frozenObj.prop = 33; // 静默失败或严格模式下报错
console.log(frozenObj.prop); // 输出: 42

对象密封

使用 Object.seal() 防止添加或删除属性,但允许修改现有属性:

const sealedObj = { prop: 42 };
Object.seal(sealedObj);
sealedObj.prop = 33; // 允许
delete sealedObj.prop; // 静默失败或严格模式下报错

对象检查

检查对象是否具有自身属性:

console.log(person.hasOwnProperty('name')); // true

检查对象是否是另一个对象的原型:

console.log(animal.isPrototypeOf(dog)); // true

标签: jsobject
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…