文章目录
前言
“js 对象属性的特性”的学习笔记,介绍属性特性的种类和说明,以及如何获取和修改属性特性。
在 js 中,可以把对象想象成一个散列表(类似于 Python 中的字典类型,或者是 Java 中的 HashMap),其中的内容就是一组名/值对,值可以是数据或者函数。
一、创建简单的对象
创建一个简单的对象主要有两种方法,第一种是先创建一个 Object 实例,然后给这个实例添加属性和方法:
let person = new Object();
person.name = "ec50n9";
person.age = 19;
person.sayName = function(){
console.log(this.name);
};
这样就创建好一个名为 person
的对象了,它包含有 name
、age
、sayName
三个属性。其中 sayName
的值是一个函数,可以这样子调用:
person.sayName(); // "ec50n9"
// 👇也可以尝试一下另一种获取属性值的方式
person["sayName"](); // "ec50n9"
还有一种看起来更加直观的创建方法,那就是使用对象字面量来创建对象,下面这种写法等价于上面的,只是看起来更简洁:
let person = {
name: "ec50n9",
age: 19,
sayName(){
console.log(this.name);
}
};
这种写法看起来就和 Python 中的字典很类似了,实际上,如果不考虑 js 的原型链的话,它俩的用法好像确实差别不大🤪。
二、对象属性的特性
对于对象中的属性,除了可以对其赋值以外,每一个属性的内部都包含有一些内部特性来描述属性自身的特征的。
这些内部特性,开发者是无法直接访问的,只能通过 Object.defineProperty()
这个函数来对其进行修改。
不同的对象属性又有不同的内部特性,这里分开来介绍。对象的属性分两种:数据属性和访问器属性。
数据属性
数据属性就是最普通的属性,包含一个保存数据的位置。值都在同一个地方读写ÿ