js实现object
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;
对象方法
在对象中定义方法:

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+):

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






