获取对象的键值对数量: 你可以使用 Object.keys()
、Object.values()
或 Object.entries()
方法来获取对象的键、值或键值对数组,并然后获取数组的长度。
var person = { name: "John", age: 30 };
var keys = Object.keys(person); // 获取键的数组
var values = Object.values(person); // 获取值的数组
var entries = Object.entries(person); // 获取键值对的数组console.log(keys.length); // 获取键的数量
console.log(values.length); // 获取值的数量
console.log(entries.length); // 获取键值对的数量
获取对象的原型: 你可以使用 Object.getPrototypeOf()
方法来获取对象的原型。
var person = { name: "John" };
var proto = Object.getPrototypeOf(person); // 获取对象的原型
检查对象是否包含某个属性: 你可以使用 hasOwnProperty()
方法来检查对象是否包含特定属性。
var person = { name: "John", age: 30 };
var hasName = person.hasOwnProperty("name"); // 检查是否包含属性 "name"
删除属性: 使用 delete
操作符可以删除对象的属性。
var person = { name: "John", age: 30 };
delete person.age; // 删除属性 "age"
合并对象: 你可以使用 Object.assign()
方法将多个对象合并成一个新对象。
var obj1 = { a: 1 };
var obj2 = { b: 2 };
var merged = Object.assign({}, obj1, obj2); // 合并 obj1 和 obj2 到 merged
获取对象的属性值: 你可以通过对象的属性名来获取属性值。
var person = { name: "John", age: 30 };
var name = person.name; // 获取属性 "name" 的值
扩充对象: 扩充对象是指向已有对象添加新属性或方法的过程。这可以通过直接为对象添加新属性或方法来实现。例如:
var person = { name: "John" };
person.age = 30; // 扩充 person 对象,添加 age 属性
冻结对象: 冻结对象是指防止对象的属性被修改的操作。你可以使用 Object.freeze()
方法来冻结一个对象,使其属性成为只读。一旦对象被冻结,就无法添加、删除或修改其属性。
var person = Object.freeze({ name: "John" });
person.age = 30; // 这行代码不会生效,因为 person 对象已被冻结
密封对象: 密封对象是指防止添加和删除对象的属性,但允许修改属性的操作。你可以使用 Object.seal()
方法来密封一个对象。
var person = Object.seal({ name: "John" });
person.age = 30; // 这行代码会失败,因为无法添加新属性
person.name = "Alice"; // 这行代码会成功,因为可以修改属性的值
模块化: 模块化编程是将代码划分为模块,每个模块通常包含相关功能的代码,从而提高代码的组织性和可维护性。在 JavaScript 中,你可以使用模块化系统(如 CommonJS、ES6 模块、AMD 等)来实现模块化编程。
模块的放大模式: 模块的放大模式是一种用于扩展模块的技术,它允许你在模块内部访问私有变量并扩展其功能。这通常通过返回一个带有额外方法或属性的对象来实现。
// 模块化代码
var myModule = (function() {var privateVar = "I am private";return {publicVar: "I am public",getPrivateVar: function() {return privateVar;}};
})();
宽放大模式: 宽放大模式是一种在模块内部访问和修改模块的私有变量的方法。它通过传递模块对象并在模块内部扩展其功能来实现。
// 模块化代码
var myModule = (function(module) {var privateVar = "I am private";module.getPrivateVar = function() {return privateVar;};return module;
})(myModule || {});