创建对象
创建对象是使用 JavaScript 的第一步。你可以通过几种不同的方式来创建对象:
字面量表示法
最简单的方式是使用对象字面量来创建一个对象:
let person = { name: "张三", age: 30, city: "北京" };
构造函数
另一种方法是使用构造函数来创建对象。构造函数是一种特殊的函数,可以用来初始化新创建的对象:
function Person(name, age, city) { this.name = name; this.age = age; this.city = city; } let zhangsan = new Person("张三", 30, "北京");
使用 Object.create()
方法
Object.create()
方法允许你通过指定的原型对象来创建新的对象:
-- -------------------- ---- ------- --- --------------- - - ----------- ---------- - ------ ------------- -- ----------- ----- --- --- ----- -- -------------- - -- --- -------- - ------------------------------- ------------- - ----- ------------ - --- ------------- - ----- -----------------------------------
访问对象属性
一旦你创建了一个对象,就可以通过几种不同的方式来访问它的属性。
点符号
最常用的方法是使用点符号来访问对象的属性:
console.log(zhangsan.name); // 输出 "张三"
方括号符号
当属性名包含特殊字符或是一个变量时,可以使用方括号符号来访问属性:
let propertyName = "name"; console.log(zhangsan[propertyName]); // 输出 "张三" zhangsan["age"] = 31; // 修改属性值
访问不存在的属性
如果尝试访问一个不存在的属性,JavaScript 会返回 undefined
:
console.log(zhangsan.email); // 输出 undefined
添加和修改属性
你可以轻松地为对象添加新的属性,或者修改已有的属性值。
添加属性
你可以直接为对象添加一个新的属性:
zhangsan.email = "zhangsan@example.com";
修改属性
修改属性值与添加属性类似,只需要给属性赋一个新的值即可:
zhangsan.age = 31;
删除属性
你可以使用 delete
操作符来删除对象的属性:
delete zhangsan.email;
删除后,该属性就不再存在于对象中了。
遍历对象属性
遍历对象的属性是一个常见的任务。有几种方法可以实现这个目标:
for-in 循环
for-in
循环是最常用的遍历对象属性的方法:
for (let key in zhangsan) { if (zhangsan.hasOwnProperty(key)) { // 只遍历对象自身的属性,不包括继承的属性 console.log(`${key}: ${zhangsan[key]}`); } }
Object.keys()
Object.keys()
方法返回一个包含对象所有可枚举属性名称的数组,然后你可以使用 forEach
来遍历这些属性:
Object.keys(zhangsan).forEach(function(key) { console.log(`${key}: ${zhangsan[key]}`); });
Object.getOwnPropertyNames()
Object.getOwnPropertyNames()
方法返回一个包含对象所有属性名称(包括不可枚举的属性)的数组:
let allPropertyNames = Object.getOwnPropertyNames(zhangsan); allPropertyNames.forEach(function(key) { console.log(`${key}: ${zhangsan[key]}`); });
对象方法
对象不仅可以包含数据属性,还可以包含方法。方法就是对象上的函数属性:
-- -------------------- ---- ------- --- ------ - - ----- ----- ---- --- ----- ----- ----------- ---------- - ------ ------------- -- ----------- ----- --- --- ----- -- -------------- - -- --------------------------------- -- -- --- -- -- ----- --- --- ----- -- ---
对象的原型链
每个对象都有一个原型(prototype),原型本身也是一个对象。当访问一个对象的属性时,如果该对象自身没有这个属性,那么 JavaScript 引擎就会在原型对象上查找这个属性。
设置原型
你可以通过设置 __proto__
属性或者使用 Object.create()
方法来改变对象的原型:
-- -------------------- ---- ------- -- -- --------- ----------------------------- - ---------- - ------ ----- -- ----------------------------------- -- -- ---- -- -- --------------- --- --------------- - - ----------- ---------- - ------ ----- - -- --- ------ - ------------------------------- ----------- - ----- ---------- - --- ----------- - ----- --------------------------------- -- -- ----
继承
通过原型链,子对象可以继承父对象的属性和方法。这使得代码复用变得非常容易:
-- -------------------- ---- ------- -------- -------------- ---- ----- --------- - ----------------- ----- ---- ------ -- ------- ------------- - --------- - ------------------ - -------------------------------- -- ---- ------------------------------ - --------- -- -------- --- -------- - --- -------------- --- ----- ------- ----------------------------------- -- -- --- -- -- ----- --- --- ----- -- --- ------------------------------- -- -- -----
以上就是关于 JavaScript 对象操作的一些基础和高级内容。理解这些概念将帮助你在日常编程中更有效地处理对象。